python虚拟环境迁移-采用复制方法(在windows测试过)
网上绝大多数都是采用(venv) $ pip freeze >requirements.txt方法进行迁移,有很多人说复制目录的方式后期会有问题,但是我觉得任何事都有原因,只要找到了方式肯定可以解决的。本人发现问题原因主要是路径的问题,python的虚拟环境都是采用绝对路径,所以复制后,需要手动调整路径指向。按照以下步骤即可完成迁移:
1.整体复制虚拟环境的目录
2.修改以下文件的内容:
- activate
- activate.bat
- Activate.ps1
将里面的路径改成当前的路径,用查找文件内容的方式改,免得漏了。
activate是linux下面进入虚拟环境的执行文件。在windows下,主要起作用的是 activate.bat和Activate.ps1。
1)activate.bat 下需要修改的位置:
11行:set "VIRTUAL_ENV=E:\Py_ENV\venv2" 26行:set "PROMPT=(venv2) %PROMPT%"
2)Activate.ps1下需要修改的位置:
30行:$env:VIRTUAL_ENV="E:\Py_ENV\venv2" 38行:Write-Host -NoNewline -ForegroundColor Green '(venv2) '
3.重新安装PIP。
为什么要做这个步骤?因为复制虚拟环境目录后,pip安装的路径还会之前的,可以用记事本查看pip.exe文件的最后。从而用pip install xxx安装的第三方模块的路径都会搞错。
因此,可手动删除 【..\Lib\site-packages】目录下的【pip-19.1.1.dist-info】文件夹。然后进入虚拟环境,执行pip安装命令后即可
python -m pip install -U pip