坎坷的 PaddlePaddle 旧版本安装
坎坷的 PaddlePaddle 旧版本安装
近期接手了一个老项目,Python3.7、PaddlePaddle2.4.2、Paddlets1.1.0。
Python3.7 姑且不提,Paddlets1.1.0 的最新版本是 2022 年底的,距今已经 3.5 年没更新了;PaddlePaddle2.4.2 常见的镜像源如: 阿里云镜像源、清华镜像源 均已无对应版本,Paddle官网 提供的安装方法 python -m pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple 实测发现也已无对应版本,所以都会安装失败。百度镜像源 更是访问就报 403。
虚拟环境
第一次正式接手生产环境的 Python 项目,所以还是先补充下基本知识。
如果接触过 Docker 之类的容器技术,对虚拟环境肯定不陌生,简单来说就是为了避免资源(例如依赖的包,某项目依赖 1.1 版本,其他项目依赖 1.3 版本)冲突,通过某种技术对项目运行环境进行隔离,每一个项目运行的环境就是一个虚拟环境。Docker 采用的是逻辑虚拟化,而 Vmware 之类的虚拟机是真正的虚拟化技术。
Pyhon 中常用的虚拟环境有 venv 和 conda。
venv
venv 在使用 pycharm 时很常用:

同时如果在项目中打开终端(Terminal),在前面会有类似 (.venv) 的字样:
1 | |
venv 需要一个真实的 python 解释器,解释一下就是 venv 中虽然也有 python 可执行文件,但这个可执行文件链接到了物理机上一个真实的解释器,就像应用程序的快捷方式一样,虽然在桌面也能打开,但删除了快捷方式不会影响真实文件,创建快捷方式的前提也是真实文件存在。假如我想创建 python3.7 的环境那么我就真的电脑上要存在一个 python3.7 的可执行文件(用可执行文件而不是 exe 的原因是,linux、macos 上不是 exe)。
Conda
国内镜像下载地址:清华大学 minniconda 下载源
根据自己的环境选择合适的安装包,安装完成后在终端输入 conda env list 查看环境列表,如果提示 conda 命令找不到,需要把 condabin 目录添加到环境变量里,添加环境变量就是为了在任意位置都能够找到对应的可执行文件。
conda 像 python 的 pip 一样,也可以配置镜像源,对应的配置文件为用户目录下(windows: C盘当前用户目录,linux/mac 是 ~/)的 .condarc:
1 | |
常用指令
创建新的虚拟环境
1 | |
例如我想创建一个 python3.7 的名字为 python_3.7 的虚拟环境: conda create -n python_3.7 python=3.7
删除虚拟环境
1 | |
激活虚拟环境
1 | |
当激活虚拟环境后,终端会在最前方展示虚拟环境的名字,提醒用户此时所处的环境:
1 | |
退出虚拟环境
1 | |
如果在虚拟环境外想要操作某个虚拟环境内的包,可以使用 -n 指定虚拟环境。
查看指定虚拟环境下已安装的包
1 | |
指定虚拟环境安装某个包
1 | |
删除指定虚拟环境下某个包
1 | |
更新指定虚拟环境下某个包
1 | |
如果已经执行了 conda activate 激活了某个虚拟环境,上述指令去掉 -n 即可,例如根据 requirement.txt 安装包:conda install --file requirements.txt 。
离线安装也很常用,一个原因是并非所有的包都能在所配置的镜像源中找到,另一个原因是在内网环境中很多时候配置私有仓库的成本会比较大。
conda 离线安装的文件格式为 .tar.bz2,指令为:conda install filename.tar.bz2。但请注意,离线安装时 conda 不会处理依赖问题,如果安装的包无法工作,可能缺少需要手动解决的依赖项。就像 paddlepaddle 依赖 paddle_bfloat,离线安装时要先按照 paddle_bfloat 再安装 paddlepaddle。
有的时候即使配置了镜像源,conda install 依然很慢,原因是在下载依赖项时 conda 需要识别依赖冲突,解析环境信息,Mamba 是兼容 Conda 的更快替代工具,特别适合处理复杂依赖:
1 | |
在虚拟环境安装完成后,可以使用 mamba 来安装包:
1 | |
安装 PaddlePaddle
回到正题,那么怎么安装 PaddlePaddle2.4.2 呢?以下为 windows 安装 PaddlePaddle 的解决方案:
注意安装时使用的 pip 环境为当前所在的 venv 环境或 conda 环境!
venv环境
- 安装 paddle_bfloat, PaddlePaddle 依赖这个,一定要先装这个
1
pip install paddle_bfloat-0.1.7-cp37-cp37m-win_amd64.whl - 安装 PaddlePaddleconda环境
1
pip install paddlepaddle-2.4.2-cp37-cp37m-win_amd64.whl
1 | |
其实就是去网上找对应的安装包进行离线安装,主流的镜像网站均已很难找到对应安装包。
conda 环境的可以尝试在这里找:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
venv 环境的可以尝试在这里找:
https://dashboard.stablebuild.com/pypi-deleted-packages/pkg/paddlepaddle/2.4.2
https://pypi.org/project/paddle-bfloat/#files
Macos、Linux 同理。