<分区>
我有一个名为“edge”的现有 virtualenv。它使用 Python 3.5.2。我已将我的 Python 解释器升级到 3.6,我希望“edge”环境改为使用 3.6。
我应该使用什么命令来更新
edge 的解释器?
我在 SO 上进行了搜索,但我能找到的所有答案都是关于创建新环境的。就我而言,我不想创建新环境。
标签 python virtualenv
<分区>
我有一个名为“edge”的现有 virtualenv。它使用 Python 3.5.2。我已将我的 Python 解释器升级到 3.6,我希望“edge”环境改为使用 3.6。
我应该使用什么命令来更新
edge 的解释器?
我在 SO 上进行了搜索,但我能找到的所有答案都是关于创建新环境的。就我而言,我不想创建新环境。
最佳答案
为 python3.5 安装的所有二进制包(例如 numpy
或 simplejson
)都与 python3.6 不兼容(它们不兼容 abi)。因此,您不能将 virtualenv 升级/降级到不同版本的 python。
最好的办法是根据原始 virtualenv 中安装的包创建一个新 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
关于python - 更新现有的 virtualenv 以使用 Python 3.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44512025/