python 环境移植¶
1. 在线安装¶
1.1 使用 conda 安装¶
1.1.1 项目环境安装¶
-
安装 conda 或者 miniconda:
-
添加到系统 PATH, 则命令行中可直接使用 conda 命令
-
不添加到系统 PATH,则需要到安装目录下的
Scripts
下使用 activate 启动 conda
-
-
创建对应的虚拟环境, 例如:
conda activate -n py39 python=3.9
-
安装项目所需环境:
pip install -r requirements.txt
或者直接一条一条安装-
torch,github 等特殊包使用对应的语句进行安装:
-
pip install torch==1.10.0 torchvision==0.11.0 torchaudio==0.11.0 -f https://download.pytorch.org/whl/torch_stable.html
-
pip install torch-scatter==2.0.9 torch-sparse==0.6.13 torch-cluster==1.6.0 torch-spline-conv==1.2.1 torch-geometric==2.0.4 -f https://data.pyg.org/whl/torch-1.10.0+cpu.html
-
-
进入项目,运行:
python xxx.py
-
若不存在
requirements.txt
,导出requirements.txt
:pip freeze > requirements.txt
1.1.2 项目环境移植¶
安装步骤同项目环境安装
1.2 使用 python venv 安装¶
conda 环境也可以使用 python3 安装 venv
1.2.1 项目环境安装¶
-
安装指定版本 python,例如 python 3.9
-
python 3.9.13最后一个提供二进制安装程序的 python 版本
-
python 3.9.14及以上版本只提供源码安装:
setup.py install
-
-
使用 python 自带 venv 创建环境(也可不使用):
python -m venv py39
-
激活 venv 环境:
.\py39\Scripts\activate
-
安装环境,
pip install -r requirements.txt
或者直接一条一条安装 -
进入项目,运行:
python xxx.py
-
若不存在
requirements.txt
,导出requirements.txt
:pip freeze > requirements.txt
1.2.2 项目环境移植¶
安装步骤同**项目环境安装**
2. 离线移植¶
2.1 离线 python 安装¶
-
python 二进程程序下载
-
python 源码安装
python 下载官网:https://www.python.org/downloads/
安装指定版本 python,例如 python 3.9
python 3.9.13最后一个提供二进制安装程序的 python 版本
python 3.9.14及以上版本只提供源码安装:
setup.py install
2.2 环境移植¶
2.2.1 venv 打包移植¶
2.2.1.1 直接打包 venv¶
-
直接将原主机下安装的 venv 文件夹进行打包,例如 venv 环境 py39 打包成 py39.zip,发送至目标主机,项目文件夹下或者任意文件夹下解压
-
修改 venv 启动脚本:
venv
的启动文件activate、activate.bat、activate.sh
里,python SDK
的PATH
设置的是原python SDK
的环境,项目移动后,需要更新这几个文件里的PATH
变量-
windows:需要修改
venv\Scripts
下的Activate
和activate.bat
两个文件中的$env:VIRTUAL_ENV
,改成当前工程的venv
路径 -
需要修改
venv\bin
下的Activate
文件中的$env:VIRTUAL_ENV
,改成当前工程的venv
路径
-
-
上述文件修改之后工程已经可以正常激活,但是如果安装了 pip 后的并不能用
- 修改 pip 文件中的路径(一般在首行)为当前工程 venv 环境下的 python 路径
-
修改 venv 使用的基础 python 路径:进入 venv 文件夹,修改 pyvenv.cfg 文件中的 home 参数,指定该 venv 使用的 python
-
运行项目进行测试
2.2.1.2 pip packages 安装包移植¶
-
首先激活虚环境,导出环境:
pip freeze > requirements.txt
-
使用 pip 命令生成批量离线安装包(whl 文件):
pip wheel --wheel-dir=./tmp/packages -r requirements.txt
,检查/tmp/packages 中是否包含了项目所需的所有.whl。如果运行报错,有部分包无法打包成 wheel:
-
请先将这些错误包移除
requirements.txt
然后重新执行pip wheel --wheel-dir=./tmp/packages -r requirements.txt
-
torch,torch_geometric 等相关包无法从 pip 下载可以使用以下命令:
-
写入 torch 等指定版本至**requirements_torch.txt**:
torch==1.11.0+cu113\ torchaudio==0.11.0+cu115\ torchvision==0.12.0+cu113
-
执行
pip wheel --wheel-dir=./tmp/packages -r requirements_torch.txt -f https://download.pytorch.org/whl/torch_stable.html
-
写入 torch_geometric 等指定版本至**requirements_tgl.txt**:
torch-cluster==1.6.0\ torch-scatter==2.0.9\ torch-sparse==0.6.13\ torch-spline-conv==1.2.1\ torch_geometric==2.4.0
-
执行
pip wheel --wheel-dir=./tmp/packages -r requirements_tgl.txt -f https://download.pytorch.org/whl/torch_stable.html
-
-
其他错误包参考下面的**pip wheel 失败解决办法,生成 whl 之后复制到**
./tmp/packages
-
最后将错误的包及 torch,torch_geometric 等加入到
requirements.txt
中,即与原环境 freeze 得到的requirements.txt
内容一致
-
-
打包至目标主机,创建虚拟环境(前提以及装好 python)并激活:
python -m venv venv_name
,.\venv\Scripts\activate
-
安装打包的依赖模块:
pip3 install --no-index --find-links=tmp/packages -r requirements.txt
-
安装完毕,检查:
pip3 freeze
或者运行项目检查
Python 离线项目迁移部署:https://zhuanlan.zhihu.com/p/114290069
2.2.1.3 pip wheel 失败解决办法¶
-
在pypi使用 package 名称进行搜索,download 界面选择指定版本下载压缩文件
-
解压,cmd 到当前解压文件夹(setup.py 所在目录)
-
检查 package 的 setup.py 文件中的配置是否正确:
python setup.py check
-
生成 wheel:
python setup.py sdist bdist_wheel || true
-
在生成的 dist 文件夹中查看生成的 wheel 文件
Python package 只有压缩格式如何转成 wheel 格式:https://blog.csdn.net/linkeeee/article/details/130618985
2.2.2 pyinstaller 打包移植¶
-
下载 pyinstaller
-
项目打包配置
-
运行打包命令
-
复杂至目标主机
-
解压运行