打包迁移Python env环境
平常工作中可能遇到虚拟迁移python虚拟环境的场景,总结了如下几个方法。适用于同架构、相同类型系统之间的python环境迁移。
方法一:使用pip freeze
和requirements.txt
这种方法将当前环境中的所有包记录到一个文件中,然后在新环境中安装这些包。
1. 导出当前环境中的包
在当前虚拟环境中,运行以下命令来生成requirements.txt
文件:
pip freeze > requirements.txt
2. 迁移requirements.txt
文件
将生成的requirements.txt
文件复制到目标机器上。
3. 在目标机器上创建新环境并安装包
在目标机器上,创建新的虚拟环境,然后使用requirements.txt
文件来安装所有包:
# 创建新的虚拟环境
python -m venv my_new_env
# 激活新环境
# Windows
my_new_env\Scripts\activate
# macOS/Linux
source my_new_env/bin/activate
# 安装包
pip install -r requirements.txt
方法二:打包整个虚拟环境目录
这种方法将整个虚拟环境目录打包并复制到目标机器上。可以实现离线打包迁移,且目的端不需要下载及安装过程。
1. 打包虚拟环境目录
在当前机器上,使用压缩工具将虚拟环境目录打包:
# 假设虚拟环境目录名为my_env
tar -czvf my_env.tar.gz my_env
2. 迁移压缩包
将生成的my_env.tar.gz
文件复制到目标机器上。
3. 解压虚拟环境目录
在目标机器上,解压缩虚拟环境目录:
tar -xzvf my_env.tar.gz
注意:
- 这种方法迁移确保迁移前后环境的python版本尽量一致,和架构必须一致。
- 使用此种方式迁移到新机器后,确保解压后虚拟环境bin目录下python软连接文件指向本地的python路径是正确的。否则会报文件不存在:
bad interpreter: No such file or directory
方法三:下载wheel包离线迁移环境
在当前机器下载离线的wheel包,将离线包迁移至目标机器直接安装。
1. 旧环境导出
在当前环境中,运行以下命令来生成wheel文件:
pipenv freeze > requirements.txt
# 执行如下文件会根据requirements.txt下载wheel安装包,下载后位于当前目录packages文件夹
pip wheel -w packages -r requirements.txt
# 或者或者使用如下命令,将wheel包下载至packages文件夹。与上面命令效果是一样的。
pip download -r requirements.txt -d packages
2. 新环境安装
将requirements.txt和packages文件夹复制到新机器上,创建虚拟环境,
python -m venv my_new_env
pip install --no-index --find-links=packages -r requirements.txt
标签:requirements,Python,虚拟环境,env,迁移,txt,my,打包 From: https://www.cnblogs.com/lldhsds/p/18220982注意
这种方法对于两边的python版本和系统类型有一定要求,尽量接近,可以根据迁移情况进行调整。有的wheel包区分是windows和linux版本。