为了保持不同项目之间包管理的独立,一般每个项目中都会独用一个虚拟环境venv,venv放在项目根目录下,在项目迁移的时候虚拟环境一般是不敢乱动的,容易报很多莫名其妙的错误,比如:因此,每次移动项目都是在新虚拟环境中重新安装之前的包。
主要原因是虚拟环境中很多文件都保存有旧项目的绝对路径地址,比如activate文件里:
甚至还有pip.exe二进制文件里:
如果直接手动去挨着改路径的话一是非常麻烦二是pip.exe这样的二进制文件如果直接改必定会出错,这里直接给解决办法,一定要按照顺序来,先修改了activate中的绝对路径,再进入到环境中更新pip。
1、先修改activate、activate.bat文件中的绝对路径(activate的40行、activate.bat的11行)
2、然后进入到虚拟环境中,更新pip,强制重新生成一遍pip相关的二进制文件
python -m pip install --upgrade pip
PS:如果你的pip版本目前就是最新的,会提示:
那也很好办就先对pip进行降级,降到任意一个版本,比如
python -m pip install pip==9.0.3
这时候就发现pip功能已经正常了,再去更新回你原本的版本或者最近的pip版本即可。