使用virtualenvwrapper在虚拟环境中升级python的最佳方法是什么



当我的机器运行Python 3.8.3时,我使用virtualenvwrapper创建了一个环境。当然,这也使Python环境成为3.8.3。

后来,我使用homebrew将主机上的Python更新为3.10。

现在,我在虚拟环境项目中有了3.10特定的代码,运行3.8.3。

该项目$PATH中的第一个条目被设置为虚拟环境本身,它使用旧的Python。第二个条目是Python 3.10。我相信这是标准的。虚拟env本身在激活时由virtualeverapper添加到$PATH的前面。

除了手动操作.zprofile或virtalenvwrapper的postactivate脚本之外,我想知道是否有一种更全面、更自动的方法可以使用virtualenvwrappe更新虚拟环境?

我不是这方面的专家,所以我担心手动操作文件或应用一次性修复只会带来麻烦。

谢谢你的帮助。

编辑:我想补充一点,我也在学习git,并在这个项目中建立了一个repo。我希望理想地通过";升级;这听起来像是创建一个新的env。virtualenv存储在.virtualenvs中的~user目录中。git repo位于项目目录中。

您不想这样做。正如你所说,即使你成功了,你也肯定会有隐藏的问题,这将是一个主要的头痛问题。幸运的是,使用与以前完全相同的安装包,但使用新的Python版本,可以很容易地重新创建虚拟环境。

您想要的是在旧的virtualenv中编译一个已安装包的列表,使用所需的Python版本制作新的venv,然后重新安装所有包。我们可以简单地这样做:

workon oldenv
pip freeze > env_requirements.txt
deactivate
mkvirtualenv newenv -p `which python3.10`
pip install -r env_requirements.txt

如果你对结果感到满意,你可以删除旧的venv:

rmvirtualenv oldenv

关于您对git的担忧,这对您的git回购绝对没有任何影响。