Как в проекте менять версии Python внутри venv (на Windows 10)
у меня Windows 10. Я не использую среду разработки PyCharm. Я использую блокнот Jupyter Notebook.
(1) Сначала я просто скачал с официального сайта инсталлятор python-3.8.10-amd64.exe и установил его обычным способом:
В итоге Питон установился куда я и просил:
(2) Далее я создаю папку test1 для своего проекта и перехожу в неё в командной строке:
cd C:\Users\alexw\Desktop\test1
И создаю тут виртуальное окружение:
C:\Users\alexw\Desktop\test1> python -m venv env
в итоге в директории test1 вижу поддиректорию env
Активирую окружение:
env\Scripts\activate
в результате в командной строке перед командой появляется надпись (env)
(3) Проверяю версию Питон:
python --version => Python 3.8.10 (как и ожидалось)
(4) Далее ставлю любую нужную библиотеку, нужной версии (правильную команду смотрю на сайте pypi.org), например:
pip install requests==2.27.0
Смотрю версию командой pip list и убеждаюсь что она 2.27.0
(5) Далее например мне надо проверить на другой версии. Ставлю другую версию:
pip install requests==2.25.1
Убеждаюсь что версия поменялась:
То есть, я так понял, в Питоне любая вновь установленная версия библиотеки "перезатирает" предыдущую версию в данном виртуальном окружении. Ну хорошо. Вроде понятно.
Сейчас такая проблема: Мне теперь надо протестировать некие скрипты не просто на разных версиях библиотек, а еще и на разных версиях интерпретатора Питон.
Например, в данный момент у меня в виртуальном окружении Питон 3.8.10 (см. пункт (3) ). А сейчас мне нужна версия Python 3.9.8. Причём мне в принципе не важно, что там глобально установлено, мне именно в моём текущем виртуальном окружении env это надо, чтобы я мог при желании менять версии интерпретатора Питон одной командой, как я сейчас меняю одной командой текущие версии библиотек.
Подскажите плиз, как лучше сделать?
Ответы (3 шт):
Подскажу способ без привлечения разных дополнительных иснструментов, т.к. сам ими не пользуюсь. Можно посмотреть в сторону pyenv и poetry для этого.
Я бы делал так:
- Придется в любом случае установить в системе нужные версии интерпретаторов. Тут важно понимать что такое переменная среды PATH в Windows.
PATH — это системная переменная, содержащая список директорий, в которых ОС будет искать исполняемый файл при вызове команды из консоли. Именно благодаря ей можно запустить интерпретатор, просто вбив
pythonв консоли в любом месте.
В Windows 10 можно добраться до настройки PATH так: Этот компьютер → Свойства → Дополнительные параметры системы → Дополнительно → Переменные среды.
У меня путь до одной из версий есть в этой переменной, до остальных нет и для их запуска требуется указывать полный путь.
- Нужные зависимости можно устанавливать через файл requirements.txt.
Получить список установленных библиотек:
pip freeze > requirements.txt
Этот файл можно поправить вручную. Потом создать в отдельной папке новое виртуальное окружение, привязанное к нужной версии питона и там установить через файл эти библиотеки
pip install -r requirements.txt
А именно менять версии интерпретаторов для venv не выйдет. Во всяком случае я таких способов не знаю. Venv ссылается на интерпретатор и зависит от него.
У меня похожая проблема, мне надо было поменять версию интерпретатора с 3.11.3 на 3.12.
для того, чтобы это сделать, достаточно заново ввести команду для создания venv в cmd:
python -m venv env
предварительно указать путь к папке, в которой вы хотите произвести изменения.
Использовать менеджер для интерпретаторов. в Windows Pyenv должен работать. https://pypi.org/project/pyenv-win/ "pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well."





