更新现有的virtualenv以使用Python 3.6

Che*_*eng 6 python virtualenv

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

我应该用什么命令来update解释边缘?

我搜索了SO,但我能找到的所有答案都是为了创建一个新的环境.在我的情况下,我不想创建一个新的环境.

Ant*_*ile 7

为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
Run Code Online (Sandbox Code Playgroud)

请注意,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
Run Code Online (Sandbox Code Playgroud)

  • Python 3.6推荐使用:python3 -m venv edge (2认同)