Python虚拟环境(venv)失效后的修复方式

以下示例环境是Windows下的Python内置模块venv。其他平台以及其他相似功能模块(如virtualenv)其实都是类似的。

首先第一个常见的导致虚拟环境失效的原因是虚拟环境文件夹路径变化,包括对虚拟环境重命名,复制移动等等,之所以虚拟环境路径变化会导致其失效是因为在虚拟环境的scripts文件夹下的一堆activate启动脚本中记录着原本虚拟环境的绝对路径,所以路径变更后这些绝对路径也应当更新。

还有就是scripts中除了python.exe和pythonw.exe外的所有模块exe文件都硬编码了虚拟环境中的python解释器的绝对路径。如图:(我的虚拟环境位置就是D:\workspace\virtualenvs\test)

Read More »