现有的virtualenv可以优雅地升级吗?

时间:2010-01-31 01:58:46

标签: python virtualenv

我为Python 2.5创建了一个virtualenv,并希望将其“升级”为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

默认的python仍然是2.5,即使我也可以指定2.6。有没有办法完全删除 2.5并让'bin / python'指向2.6?

5 个答案:

答案 0 :(得分:56)

您可以使用Python 2.6 virtualenv来“复制”现有目录。您必须重新安装所有已安装的模块。我经常有一个用于开发模块的虚拟目录,以及与许多Python版本相同的目录virtualenv,它工作得很好。 :)

答案 1 :(得分:4)

您应该使用virtualenv创建新的python2.6,然后在激活新的env后,使用其python2.6及其easy_install来安装任何网站包的新版本你需要。请注意virtualenv的路径名称已硬连线到环境中的各种文件中,因此,当您准备切换到它时,请更改启动脚本等,以引用新的virualenv将路径复制到旧目录并修改其中的路径名称时要非常小心。

答案 2 :(得分:4)

在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 :(得分:3)

在CentOS上安装第二个Python

  1. 下载python
  2. 安装到差异本地

    configure --prefix=/opt/virtualenv/python 
    make && make install
    
  3. 使用new python创建虚拟环境

    virtualenv /opt/virtualenv --python=/opt/python276/bin/python
    

    注意:如果需要,可以使用其他用户

    完成
    chown pyuser -R /opt/virtualenv
    su - pyuser
    source /opt/virtualenv/bin/activate
    python -v
    
  4. 创建虚拟环境:

    virtualenv /opt/virtualenv
    su - infograficos
    source bin/activate
    
  5. 使用python 2.7安装pip(在virtualenv内部)

    easy_install pip 
    

答案 4 :(得分:0)

如果您正在使用OS X,请尝试this,如果您希望将Python升级到次要版本(例如2.7.6到2.7.8),同时保持第三方库的正常运行。< / p>

在安装了Django的5个不同虚拟环境中,它适用于我。