Я установил Python 3.5.1 поверх 3.5.0 и теперь хочу обновить виртуальную среду, чтобы использовать 3.5.1, но не могу найти простой способ сделать это. Похоже, что мне придется удалить виртуальную среду, а затем заново создать ее с новой версией Python. Есть ли у кого-нибудь более простой способ сделать это?

Jonathan

Ответов: 1

Ответы (1)

Для незначительного обновления (3.5.0 -> 3.5.1 или более общего, где изменяется только z в x.y.z), вам не нужно ничего делать.

В virtualenv, в его подкаталоге bin, есть симлинк на системный исполняемый файл Python, как показано ниже:

python -> python3.5
python3 -> python3.5
python3.5 -> /usr/bin/python3.5

Поскольку /usr/bin/python3.5 заменяется при обновлении с 3.5.0 до 3.5.1, virtualenv будет автоматически использовать новую версию Python.

Если вы делаете более серьезное обновление (x или y в x.y.z), вам потребуется обновить virtualenv.

Если вы используете встроенную команду pyvenv (появилась в Python 3.3), у нее есть флаг --upgrade:

Обновите каталог окружения для использования этой версию Python, предполагая, что Python был обновлен на месте.

... что должно помочь. Обратите внимание, что в Python 3.6 команда pyvenv заменяется на python3 -m venv.

Если вы используете пакет virtualenv, а не встроенную команду, самый простой способ сделать это - удалить virtualenv и создать его заново с новой версией Python, а затем запустить pip install -r requirements.txt.

Это предполагает, что у вас есть файл requirements.txt для вашего проекта. Вы можете создать один из этих файлов, в котором перечислены все пакеты, установленные в вашем virtualenv, выполнив команду pip freeze --local > requirements.txt перед обновлением Python и воссозданием virtualenv.

2022 WebDevInsider