venv Python
Введение | |
Установка | |
Создать | |
Активировать | |
Деактивировать | |
Выбор версии Python для окружения | |
Сохранить requirements | |
Установить из requirements.txt | |
Проверка активации | |
Похожие статьи |
Введение
Модуль venv поддерживает создание облегченных “виртуальных сред”, каждая из которых имеет свой собственный
независимый набор пакетов Python, установленных в каталогах их сайтов.
Виртуальная среда создается поверх существующей установки Python, известной как “базовый” Python виртуальной
среды, и при желании может быть изолирована от пакетов в базовой среде, поэтому доступны только те, которые
явно установлены в виртуальной среде.
При использовании из виртуальной среды обычные средства установки, такие как pip, будут устанавливать пакеты
Python в виртуальную среду без необходимости получения явного указания на это.
Смотрите
PEP 405
для получения дополнительной информации о виртуальных средах Python.
Установка
Входит в состав Python3 поэтому обычно не требует установки.
Если вы работаете в
WSL
типа
Debian
/
Ubuntu
установить можно с помощью
sudo apt install python3.10-venv
Создать
Чтобы создать новое окружение выполните
python3 -m venv venv
Вместо venv можете придумать своё имя для окружения.
Обычно для мелких проектов никто не парится и просто в папке с проектом создает
окружение venv - у такого подхода есть как плюсы так и минусы.
Если вы работаете в WSL то создавая окружение нужно использовать ту же версию Python, для котороый вы установили venv. Например
sudo python3.10 -m venv ubuntu_venv
Активировать
В Linux чтобы перейти в окружение выполните
source ./venv/bin/activate
В Windows PowerShell нужно выполнить
.\venv\Scripts\activate
Деактивировать
Чтобы выйти из виртуального окружения выполните
deactivate
Выбор версии Python для окружения
Чтобы создать окружение с определённой версией Python используйте команду с указанием версии.
Чтобы это сработало нужно иметь установленный Python данной версии
python3.9 -m venv your_env
Сохранить requirements
python -m pip freeze > requirements.txt
Установить из requirements.txt
python -m pip install -r .\requirements.txt
Проверка активации
Название окружения может и не появиться в скобках в приглашении терминала.
Чтобы проверить активировалось ли виртуальное окружение или нет - можно выполнить следующие команды
В Linux
python >>> import sys >>> sys.prefix '/home/andrei/pytest/venv' >>> sys.base_prefix '/home/andrei/.pyenv/versions/3.9.5'
В Windows
python >>> import sys >>> sys.prefix 'C:\Users\Andrei\Documents\Projects\venv' >>> sys.base_prefix 'C:\Users\Andrei\AppData\Local\Programs\Python\Python310'
Если sys.prefix отличается от sys.base_prefix значит используется Python из виртуального окружения.
Если вы запускаете скрипт в Pycharm изучите вывод терминала
/home/andrei/pytest/venv/bin/python /home/andrei/pytest/main.py
Process finished with exit code 0
/home/andrei/pytest/venv/bin/python
- это путь до использованного Python
Если бы я запустил скрипт не из виртуального окружения вместо этого пути был бы путь
/usr/bin/python3.8
Виртуальное окружение | |
Anaconda | |
pyenv | |
virtualenv |