114

我为 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?

4

5 回答 5

70

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

于 2010-01-31T08:48:00.927 回答
45

在 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,没有任何问题。

于 2019-10-17T12:30:34.397 回答
4

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

于 2010-01-31T02:38:53.363 回答
3

在 CentOS 上安装第二个 Python

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

    configure --prefix=/opt/virtualenv/python 
    make && make install
    
  3. 使用新的 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 
    
于 2014-02-07T20:30:30.510 回答
0

如果您使用的是 OS X,如果您想将 Python 升级到较小的增强版本(例如 2.7.6 到 2.7.8),同时保持第三方库正常工作,请尝试此操作。

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

于 2014-12-12T04:03:27.317 回答