能够更新使用生成的虚拟环境将非常方便virtualenv --system-site-packages /path/to/myvirtenv
考虑到基础 Python 中所做的更改。
例如,如果已在 virtualenv 中安装 IPython 2.4,并且后来在基础 Python 中安装了 IPython 3.0,则应从虚拟环境中删除旧的 IPython,并替换为较新包的副本。
我们应该怎么做?是否已经有命令可以执行此操作?如果没有,是否可以在 virtualenv 包中实现它?
PS:当您没有管理员权限时,使用 --system-site-packages 选项生成的虚拟环境非常方便,但如果对基本 Python 进行任何修改会使虚拟环境出现错误,那么这似乎不是一个好方法!
PS:这个问题与这个问题相关virtualenv 找不到更新的模块 https://stackoverflow.com/questions/25170016/virtualenv-not-finding-updated-module.
如果已在 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
然后创建一个新的virtualenv
# apply base changes
virtualenv --system-site-packages /path/to/venv
source /path/to/venv/bin/activate
pip install -r requirements.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)