python - 更新现有的 virtualenv 以使用 Python 3.6

标签 python virtualenv

<分区>

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

我应该使用什么命令来更新 edge 的解释器?

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

最佳答案

为 python3.5 安装的所有二进制包(例如 numpysimplejson)都与 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/

相关文章:

python - 为什么屏幕上有多个虚拟环境?

python - 将 python 脚本作为服务运行,需要 virtualenv (ubuntu)

python - 约束优化问题: Python

python - 使用许多属性和字典查找优化 Python 代码

python 速成类(class)使未注册用户可以访问 django 帖子

jquery - 使用 jquery ajax 捕获 401 未经授权的 http 响应

environment-variables - 如何在Windows的virtualenv中设置环境变量?

python-3.x - 在通过 pyenv 安装 python 3.7.0 期间 zlib 不可用,我该如何解决?

Python virtualenv 问题

python - pyqt webkit + divx 网络播放器