平常工作中可能遇到python虚拟环境迁移的场景,总结了如下几个方法。适用于同架构、相同类型系统之间的python虚拟环境迁移。
这种方法将当前环境中的所有包记录到一个文件中,然后在新环境中安装这些包。
在当前虚拟环境中,运行以下命令来生成requirements.txt
文件:
pip freeze > requirements.txt
将生成的requirements.txt
文件复制到目标机器上。
在目标机器上,创建新的虚拟环境,然后使用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
这种方法将整个虚拟环境目录打包并复制到目标机器上。可以实现离线打包迁移,且目的端不需要下载及安装过程。
在当前机器上,使用压缩工具将虚拟环境目录打包:
# 假设虚拟环境目录名为my_env tar -czvf my_env.tar.gz my_env
将生成的my_env.tar.gz
文件复制到目标机器上。
在目标机器上,解压缩虚拟环境目录:
tar -xzvf my_env.tar.gz
注意:
- 这种方法迁移确保迁移前后环境的python版本尽量一致,和架构必须一致。
- 使用此种方式迁移到新机器后,确保解压后虚拟环境bin目录下python软连接文件指向本地的python路径是正确的。否则会报文件不存在:
bad interpreter: No such file or directory
在当前机器下载离线的wheel包,将离线包迁移至目标机器直接安装。
在当前环境中,运行以下命令来生成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
将requirements.txt和packages文件夹复制到新机器上,创建虚拟环境,
python -m venv my_new_env pip install --no-index --find-links=packages -r requirements.txt
注意
这种方法对于两边的python版本和系统类型有一定要求,尽量接近,可以根据迁移情况进行调整。有的wheel包区分是windows和linux版本。
到此这篇关于打包迁移Python env环境的三种方法的文章就介绍到这了,更多相关打包迁移Python env环境内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!