现有的虚拟环境可以优雅升级吗?[重复]
- 2025-03-19 08:57:00
- admin 原创
- 46
问题描述:
我有一个为 Python 2.5 创建的虚拟环境,并且想要将其“升级”到 Python 2.6。
最初的设置方式如下:
virtualenv --no-site-packages -p python2.5 myenv
我现在在同一目录中运行 virtualenv 来升级:
virtualenv --no-site-packages -p python2.6 myenv
...
Not overwriting existing python script myenv/bin/python (you must use myenv/bin/python2.6)
...
Overwriting myenv/bin/activate with new content
尽管我也可以指定 2.6,但默认的 python 仍然是 2.5。有没有办法完全删除2.5 并让“bin/python”指向 2.6?
解决方案 1:
您可以使用 Python 2.6 虚拟环境来“重新虚拟化”现有目录。不过,您必须重新安装所有已安装的模块。我经常有一个用于开发模块的虚拟目录,并且将虚拟环境与许多版本的 Python 放在同一个目录中,这样就可以正常工作。:)
解决方案 2:
在 Python 3.3+ 中venv支持 --upgrade 标志
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
用法:
python -m venv --upgrade YOUR_VENV_DIRECTORY
我刚刚在几个项目上将我的 venv 从 Python 3.7.x 升级到 3.8,没有任何问题。
解决方案 3:
您应该创建一个新的virtualenv
使用python2.6
,然后在激活新环境后,使用它python2.6
和它easy_install
来安装您需要的任何站点包的新版本。请注意,路径名virtualenv
已硬编码到环境中的各个文件中,因此,当您准备切换到它时,请更改启动脚本等以引用新virualenv
路径,或者非常小心地将其复制到旧目录并修改其中的路径名。
解决方案 4:
您可以简单地转到您的 venv 文件并从 pyvenv.cfg 更改 python 路径及其版本,如下所示:
解决方案 5:
在 CentOS 上安装第二个 Python
下载 python
安装到差异本地
configure --prefix=/opt/virtualenv/python
make && make install
使用新的 python 创建虚拟环境
virtualenv /opt/virtualenv --python=/opt/python276/bin/python
注意:如果需要,可以由不同的用户完成
chown pyuser -R /opt/virtualenv
su - pyuser
source /opt/virtualenv/bin/activate
python -v
创建虚拟环境:
virtualenv /opt/virtualenv
su - infograficos
source bin/activate
使用 python 2.7 安装 pip (在 virtualenv 内部)
easy_install pip
解决方案 6:
如果你使用的是 OS X,并且想要将 Python 升级到小幅提升的版本(例如从 2.7.6 升级到 2.7.8)同时保持第三方库正常运行,请尝试此方法。
它在安装了 Django 的 5 个不同的虚拟环境中为我工作。
扫码咨询,免费领取项目管理大礼包!