【问题标题】:Update existing virtualenv to use Python 3.6 [duplicate]更新现有的 virtualenv 以使用 Python 3.6 [重复]
【发布时间】:2017-11-14 16:08:55
【问题描述】:

我有一个名为“edge”的现有 virtualenv。它使用 Python 3.5.2。我已将我的 Python 解释器升级到 3.6,我希望 'edge` 环境改用 3.6。

updateedge 的解释器应该使用什么命令?

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

【问题讨论】:

  • 所有为python3.5安装的二进制包都与python3.6不兼容——你最好的选择是edge/bin/pip freeze > reqs.txt && virtualenv edge2 -ppython3.6 && edge2/bin/pip install reqs.txt
  • thx @AnthonySottile 你介意写一个答案让我接受吗?

标签: python virtualenv


【解决方案1】:

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

最好的办法是创建一个 new 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 3.6 推荐使用:python3 -m venv edge
猜你喜欢
  • 2016-07-01
  • 2015-05-02
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
  • 2015-06-25
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多