我有一个名为 'edge' 的虚拟环境,它使用 Python 3.5.2。我已经将我的 Python 解释器升级到了 3.6,并希望 `edge` 环境改用 3.6。
应该使用什么命令来更新 `edge` 的解释器?
我在 SO 上搜索过,但我能找到的所有答案都是用于创建新环境的。在我的情况下,我不想创建一个新环境。
应该使用什么命令来更新 `edge` 的解释器?
我在 SO 上搜索过,但我能找到的所有答案都是用于创建新环境的。在我的情况下,我不想创建一个新环境。
所有在Python3.5中安装的二进制软件包(例如numpy
或simplejson
)都与Python3.6不兼容(它们不是abi兼容的)。因此,您无法将虚拟环境升级/降级到不同版本的Python。
您最好基于原始虚拟环境中安装的软件包创建一个新的 virtualenv。您可以通过执行以下操作来实现接近相似:
edge/bin/pip freeze > reqs.txt
virtualenv edge2 -p python3.6
edge2/bin/pip install -r reqs.txt
请注意,虚拟环境通常无法移动,因此如果您希望其存在于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
edge/bin/pip freeze > reqs.txt && virtualenv edge2 -ppython3.6 && edge2/bin/pip install reqs.txt
,这将把软件包列表输出到reqs.txt文件中,然后在一个名为edge2的虚拟环境里安装python3.6并使用edge2/bin/pip安装reqs.txt中的软件包。 - anthony sottile