更新Python virtualenv?

pau*_*ier 3 python virtualenv

能够更新生成的虚拟环境并virtualenv --system-site-packages /path/to/myvirtenv考虑到基础Python中已完成的更改将非常方便.

例如,如果已经在virtualenv中安装了IPython 2.4并且后来在基础Python中安装了IPython 3.0,则应该从虚拟环境中删除旧的IPython,并替换为较新的包的副本.

我们应该怎么做?是否已经有命令这样做?如果没有,是否可以在virtualenv包中实现它?

PS:使用--system-site-packages选项生成的虚拟环境非常方便,如果你没有管理员权限,但如果对基础Python的任何修改使虚拟env错误,它似乎不是一个好方法!

PS:这个问题与virtualenv没有找到更新模块这个问题有关.

mir*_*ixx 8

如果已经在virtualenv中安装了IPython 2.4,并且后来在基础Python中安装了IPython 3.0,则应该从虚拟环境中删除旧的IPython,并替换为较新的包的副本.

您可能能够调整现有的virtualenv,例如通过创建新文件并将文件复制到现有文件中.但是,我发现更新的最佳和最安全的方法如下:

# preserve installed packages
source /path/to/venv/bin/activate
pip freeze > requirements.txt
deactivate
# careful now, this destroys all
rm -rf /path/to/venv
Run Code Online (Sandbox Code Playgroud)

然后创建一个新的virtualenv

# apply base changes
virtualenv --system-site-packages /path/to/venv
source /path/to/venv/bin/activate
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

  • 我认为它可能比这更简单.我认为你需要做的就是升级后的"virtualenv --system-site-packages/path/to/venv".似乎在我的系统上做了伎俩 (4认同)