环境:
主机A: windows7 python 3.8.5
主机B: windows7 python 2.7.3
python 3.8.5自带创建虚拟环境命令,不需要单独安装virtualenv
python -m venv env
目标:
把主机A中能正常运行的python项目myapp复制到主机B中运行,主机A中使用了虚拟环境
尝试:
直接将主机A中的整个工作路径全部复制到主机B(包括env路径)
结果:无法直接启动工程
原因:虚拟环境中的env\Scripts\python.exe,pip.exe等执行文件采用硬编码方式记录主机A中的绝对路径,如果直接复制,会导致路径不同出错
解决办法:
两台电脑必须有相同的python版本
导出依赖包,在另一台电脑新建虚拟环境,再将包导入到新建的虚拟环境
步骤:
1.主机B 安装配置相同版本python
2.主机A 输出虚拟环境中的依赖包,记录到requirements.txt中
pip freeze > requirements.txt
3.主机A 下载依赖包,保存在本地文件夹packages中
pip download -r requirements.txt -d packages
4.主机B 新建虚拟环境
python -m venv env
5.主机B 激活虚拟环境,复制、安装依赖包
env\Scripts\activate.bat
pip install --no-index --find-links=packages -r requirements.txt