更新现有的virtualenv以使用Python 3.6

时间:2017-06-13 03:47:10

标签: python virtualenv

我有一个名为' edge'的现有virtualenv。它使用Python 3.5.2。我已将我的Python解释器升级到3.6,我希望' edge` env使用3.6代替。

我应该使用什么命令update边缘翻译?

我搜索了SO,但我能找到的所有答案都是为了创建一个新的环境。就我而言,我不想创建一个新的环境。

1 个答案:

答案 0 :(得分:7)

为python3.5安装的所有二进制包(例如numpysimplejson)与python3.6不兼容(它们不兼容abi)。因此,您无法将virtualenv升级/降级为不同版本的python。

您最好的选择是根据原始virtualenv中安装的软件包创建 new virtualenv。您可以通过以下方式接近

edge/bin/pip freeze > reqs.txt
virtualenv edge2 -p python3.6
edge2/bin/pip install -r reqs.txt

请注意,virtualenvs 通常不可移动,因此如果您希望它存在于edge,您可能需要以下过程

edge/bin/pip freeze > reqs.txt
mv edge edge_old
virtualenv edge -p python3.6
edge/bin/pip install -r reqs.txt
# optionally: rm -rf edge_old