Если вы работаете с Python, вам рано или поздно придётся иметь дело с установкой сторонних библиотек. На первый взгляд это просто, но без правильного подхода легко создать кучу проблем: зависимостей, конфликтов версий, ошибок при запуске кода на другой машине или при переходе между проектами. Авторы часто советуют самые разные инструменты, от pyenv до Poetry или Anaconda, но базовая связка, которую полезно понимать в первую очередь, это pip и venv.
Что такое виртуальная среда и зачем она нужна
Виртуальная среда — это всего лишь папка, в которой изолированно устанавливаются пакеты Python, отдельно от системной установки интерпретатора. Это помогает решать самые частые проблемы:
вы не мешаете пакетам одного проекта пакетам другого;
разные проекты могут использовать разные версии одной и той же библиотеки;
исключаются конфликты зависимостей, которые сложно диагностировать.
Например, если один ваш проект использует requests версии 2.28, а другой требует 2.31, без виртуальной среды они будут мешать друг другу и вы получите неожиданные ошибки. С виртуальными средами это происходит редко: каждая среда держит свои пакеты отдельно.
Почему мы используем именно venv
Python 3 уже включает встроенный инструмент venv, который позволяет создавать виртуальные среды без установки сторонних утилит. В отличие от старых или внешних инструментов (virtualenv, pipenv, poetry и т. п.), venv:
не требует дополнительной установки;
надёжно изолирует зависимости;
работает одинаково на всех платформах.
Лучше не использовать другие инструменты, чтобы избежать лишних точек отказа в процессе настройки окружения.
Как создать и использовать виртуальную среду
Перед созданием среды убедитесь, что на компьютере установлена нужная версия Python и вы знаете, какую версию хотите использовать. Каждая виртуальная среда привязана к конкретной версии Python.
На Windows
Откройте терминал (PowerShell или CMD), перейдите в папку проекта и выполните:
py -3.X -m venv .venvгде X — минорная версия Python, которую вы хотите использовать.
Чтобы активировать среду:
.venv\Scripts\activateНа macOS или Linux
В терминале из корня проекта выполните:
python3.X -m venv .venvЗатем активируйте:
source .venv/bin/activateПосле активации вы увидите название среды (.venv) в командной строке. Это означает, что все последующие команды python и pip будут работать именно в этой среде.
Установка пакетов внутри среды
Когда среда активирована, устанавливайте библиотеки так:
python -m pip install имя_пакетаЗапуск установки через python -m pip более надёжен, чем просто pip, потому что гарантированно связывает установку с текущей средой.
Все установленные пакеты будут видны только внутри этой виртуальной среды. Вне её они недоступны, что защищает другие проекты и вашу систему от нежелательных побочных эффектов.
Правильные и неправильные практики
Чего стоит избегать:
не используйте
pipвне виртуальной среды — это приведёт к установке в глобальное окружение и может вызвать конфликты.не запускайте установку с
sudoили с флагом--user— это снова выходит за пределы изоляции среды.не смешивайте инструменты вроде Anaconda с пакетами, установленными через обычный
pipиvenv.не перемещайте и не переименовывайте директорию виртуальной среды — лучше пересоздайте её, чем пытаться «починить» после таких изменений.
Практичные советы
Несколько полезных рекомендаций для повседневной работы:
Если у вас много мелких скриптов, можно создать одну общую виртуальную среду для них. Это проще, чем каждый раз создавать новую для пятистрочного скрипта.
Не бойтесь создавать и удалять среды часто, они «дешёвы» по ресурсам и облегчают управление зависимостями.
Если проект поддерживает разные версии Python, заведите отдельные среды для каждой версии и, возможно, отдельные файлы
requirements.txt.Вам не обязательно активировать среду, чтобы использовать её т.к. можно напрямую вызывать
pythonиpipиз папкиbin(илиScriptsна Windows). Но активация делает работу удобнее.
Дополнительные трюки
Если при установке пакетов возникают ошибки SSL (например, в сетях с прокси), можно использовать
--trusted-hostдля указания доверенных хостов.При работе за корпоративным прокси
pipподдерживает флаг--proxy, куда можно передать адрес и учётные данные.Чтобы скачать пакет без установки, можно использовать:
python -m pip download имя_пакетаЭто закачает
.whl-файлы в текущую папку, и вы сможете установить их офлайн.
Понимание и правильное использование pip и venv помогает избежать массы типичных «болей» в Python, от конфликтов зависимостей до хрупких окружений. Это фундамент, на котором стоит выстраивать более сложные инструменты и практики.