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

Пример PowerShell скрипта, который проверяет активировано ли окружение из текущей директории и если нет то активирует его

If ($env:VIRTUAL_ENV -eq "${PWD}\venv") { Write-Host "venv is already activated" echo $env:VIRTUAL_ENV echo "${PWD}\venv" } Else { echo $env:VIRTUAL_ENV echo "${PWD}\venv" python -m venv venv .\venv\Scripts\activate }

Деактивировать

Чтобы выйти из виртуального окружения выполните

deactivate

Выбор версии Python для окружения

Чтобы создать окружение с определённой версией Python используйте команду с указанием версии.

Чтобы это сработало нужно иметь установленный Python данной версии

python3.9 -m venv your_env

Сохранить requirements

python -m pip freeze > requirements.txt

Файл requirements.txt имеет формат

название_пакета==версия

Например

flake8==7.0.0 mccabe==0.7.0 pycodestyle==2.11.1 pyflakes==3.2.0 robotframework==7.0 six==1.16.0 thrift==0.16.0

Установить из requirements.txt

В Linux и Git Bash

python -m pip install -r ./requirements.txt

В Windows

python -m pip install -r .\requirements.txt

requirements из GitHub

В файле requirements.txt можно использовать не только названия пакетов с их версиями, но и ссылки на GitHub репозитории, если эти репозитории оформлены в виде пакетов. Подробнее в статье «pip install из GitHub»

git+https://github.com/AndreiOlegovich/demo_py_package.git

Или с указанием коммита

git+https://github.com/AndreiOlegovich/demo_py_package.git@470a6844f71eb8872174d8fe28629337c3d69fab

Проверка активации

Название окружения может и не появиться в скобках в приглашении терминала.

Чтобы проверить активировалось ли виртуальное окружение или нет - можно выполнить следующие команды

В 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

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: