Можно ли изящно обновить существующий virtualenv?

У меня есть virtualenv, созданный для 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

По умолчанию python все равно 2.5, хотя я также могу указать 2.6. Есть ли способ удалить 2.5 целиком и вместо того, чтобы вместо "bin/python" указать 2.6?

Ответ 1

Вы можете использовать Python 2.6 virtualenv для "revirtual" существующего каталога. Вам придется переустановить все модули, которые вы установили. У меня часто есть виртуальный каталог для разработки модуля, а virtualenv - тот же каталог со многими версиями Python, и он работает отлично.:)

Ответ 2

Вы должны создать новый virtualenv с помощью python2.6, а затем, после активации нового env, используйте его python2.6 и его easy_install для установки новых версий любых пакетов сайтов, которые вам нужны. Помните, что имя пути к virtualenv жестко привязано к различным файлам в среде, поэтому, когда вы готовы переключиться на него, измените сценарии запуска и другие, чтобы ссылаться на новый путь virualenv или быть очень тщательно скопируйте его в старый каталог и измените имена путей внутри него.

Ответ 3

Установите второй Python на CentOS

  • скачать python
  • установить для локального локального

    configure --prefix=/opt/virtualenv/python 
    make && make install
    
  • создать виртуальный env с помощью нового python

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

    Примечание: при необходимости это можно сделать с другим пользователем

    chown pyuser -R /opt/virtualenv
    su - pyuser
    source /opt/virtualenv/bin/activate
    python -v
    
  • Создание виртуального env:

    virtualenv /opt/virtualenv
    su - infograficos
    source bin/activate
    
  • Установить pip с помощью python 2.7 (внутри virtualenv)

    easy_install pip 
    

Ответ 4

Если вы используете OS X, попробуйте this, если вы хотите обновить Python до версии с незначительным увеличением (например, с 2.7.6 до 2.7.8), в то время как поддерживая работу сторонних библиотек.

Он работает для меня в 5 различных виртуальных средах с установленным Django.

Ответ 5

В 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 в нескольких проектах.