升级Python 3虚拟环境

6
我已经安装了Python 3.5.1,覆盖了3.5.0。现在我想更新虚拟环境以使用3.5.1,但我找不到简单的方法来实现这一点。看起来我需要删除虚拟环境,然后使用新版本的Python重新构建它。有没有更简单的方法可以做到这一点?

2
类似于这样的小更新(版本 x.y.z 中的 z)不需要做任何事情 - virtualenv 包含一个符号链接到系统 python3.5 可执行文件,该文件将已被替换。 对于较大的更新(版本 x 或 y 中的一个),我通常只是删除环境,为新版本重新创建它,然后运行 pip install -r requirements.txt - jbg
与之前的更改一样,Python的二进制文件将在次要版本中进行更新。如果您不确定,可以使用“-p”标志在创建新的虚拟环境时选择您的Python版本来重新创建它。 - cdvv7788
1个回答

4
对于小型升级(3.5.0 -> 3.5.1或更一般的情况,只有x.y.z中的z在变化),您不需要做任何操作。
虚拟环境在其bin子目录中有一个符号链接到系统Python可执行文件,如下所示:
python -> python3.5
python3 -> python3.5
python3.5 -> /usr/bin/python3.5

由于从3.5.0升级到3.5.1时,/usr/bin/python3.5会被替换,因此virtualenv将自动使用新的Python版本。

如果您正在进行更大的升级(x.y.z中的xy),则需要升级virtualenv。

如果您正在使用内置的pyvenv命令(在Python 3.3中引入),它有一个--upgrade标志:

升级环境目录以使用此Python版本,假设Python已经原地升级。

...这应该可以解决问题。请注意,pyvenv命令将在Python 3.6中被python3 -m venv替换。

如果您正在使用virtualenv包而不是内置命令,则最简单的方法是删除virtualenv并使用新版本的Python重新创建它,然后运行pip install -r requirements.txt

这假定您有一个requirements.txt文件用于您的项目。您可以通过在升级Python和重新创建virtualenv之前运行pip freeze --local > requirements.txt来创建这些文件,其中列出了在您的virtualenv中安装的所有软件包。


这个很好地完成了任务,谢谢! - Jonathan
我既没有requirements.txt文件,也没有时间机器让我在升级之前创建一个。你知道是否有比降级、获取要求文件和重新升级更好的选择吗? - Daniel H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接