素材牛VIP会员
python升级后,如何给virtualenv里的python进行升级
 马***0  分类:Python  人气:846  回帖:4  发布于6年前 收藏

如题,virtualenv的python版本是2.7,现在装了2.7.4,如何将virtualenv里的版本也更新到2.7.4呢?

如果是2.6,那么这种跨大版本的又该如何升级到2.7呢?

 标签:virtualenvpython

讨论这个帖子(4)垃圾回帖将一律封号处理……

Lv1 新人
kg***25 页面重构设计 6年前#1

我也碰到了这个问题,用brew升级python的时候忘记了备份,升级之后才发现pip也不能正常工作了,不过幸好找到了解决方法,重新安装几百兆的package实在是不能忍……


先将虚拟环境中的部分文件删除

cd <EXISTING_ENV_PATH>
rm .Python
rm bin/pip{,2,2.7}
rm bin/python{,2,2.7}
rm -r include/python2.7
rm lib/python2.7/*
rm -r lib/python2.7/distutils
rm lib/python2.7/site-packages/easy_install.*
rm -r lib/python2.7/site-packages/pip
rm -r lib/python2.7/site-packages/pip-*.dist-info
rm -r lib/python2.7/site-packages/setuptools
rm -r lib/python2.7/site-packages/setuptools-*.dist-info


删除之后,再建立一次虚拟环境,目录还是用原来的目录

virtualenv <EXISTING_ENV_PATH>

Lv3 码奴
走***一 交互设计师 6年前#2

为什么不直接把原来的virtualenv文件夹删除, 然后一现有的2.7.4为蓝本创建一个新的virtualenv? virtualenv的本意就是要实现可以自由移植的虚拟环境

至于module的dependency, 可以在删除之前, 用 pip freeze 记录下相关的module

    pip freeze > requirements.txt
    rm -rf <你的virtualenv 文件夹>
    virtualenv <新的virtualenv 文件夹>
    source <新的virtualenv文件夹>/bin/activate
    pip install -r requirements.txt

这样就完成迁移了

Lv5 码农
yi***ou CEO 6年前#3

我是使用的 virtualenvwrapper .

使用以下就会使用系统的 python 版本升级:
mkvirtualenv exist_virtualenv_name

副作用,virtualenv虚拟环境中之前安装的libs 都需要重新安装

Lv6 码匠
wo***fp CEO 6年前#4

先升级python后,pip就不能用了。
在python3.6.1中使用下面的命令更新成功,不用重新安装其他包。

mkvirtualenv --python=python3.6 superxxx

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取