Установка пакетов в виртуальное окружение Python

Раздел: Управление окружением -> Виртуальные окружения

Установка пакетов в виртуальное окружение Python

Основной способ добавления библиотек в изолированную среду venv состоит из двух этапов: активация окружения и запуск команды pip install. После активации все операции с pip выполняются внутри созданного окружения, не затрагивая глобальный интерпретатор.

Пример последовательности действий для Unix-подобных систем и Windows:

# Создание виртуального окружения
python3 -m venv myenv

# Активация (Linux/macOS)
source myenv/bin/activate

# Активация (Windows CMD)
myenv\Scripts\activate.bat

# Активация (Windows PowerShell)
myenv\Scripts\Activate.ps1

# Установка пакета
pip install requests

Python venv ubuntu (создать виртуальное окружение python в ubuntu)

После установки пакет будет доступен только внутри активированного окружения. Для проверки можно выполнить pip list или python -c "import requests".

Как установить пакет определённой версии?

Указание версии происходит через оператор ==:

pip install requests==2.28.1

Python activate window (активация виртуального окружения python в windows)

Если версия не существует, pip выведет ошибку. Можно использовать >= или <= для задания диапазона.

Как установить набор пакетов из файла зависимостей?

Типичный файл requirements.txt содержит по одной записи на строку:

# requirements.txt
flask==2.3.0
requests>=2.25
gunicorn

# Установка
pip install -r requirements.txt

Python venv exit (выход из виртуального окружения python)

Также поддерживаются URL-ссылки и локальные пути.

Как установить пакет из локального файла или архива?

Если пакет распространяется в виде .whl или .tar.gz, путь указывается напрямую:

pip install ./downloads/somepackage-1.0-py3-none-any.whl
pip install ./source/somepackage.tar.gz

Venv python version (версия python в виртуальном окружении)

Это удобно для офлайн-установки или использования предварительно собранных бинарников.

Как установить пакет в режиме разработки (editable)?

Режим editable позволяет подключать локальные файлы пакета так, что изменения сразу становятся доступны без переустановки:

pip install -e /path/to/mypackage/

Python venv commands (команды виртуального окружения python)

Эта команда создаёт символическую ссылку на расположение пакета внутри site-packages, удобно при разработке собственных библиотек.

Типичные ошибки и сложности

Установка вне активированного окружения. После выполнения pip install пакет может оказаться в глобальном интерпретаторе. Признак: отсутствует префикс (venv) в командной строке. Решение: всегда активировать нужное окружение перед установкой.

Ошибка 'pip: command not found' или 'externally-managed-environment'. В современных дистрибутивах Linux рекомендуется использовать python3 -m pip вместо прямой команды pip. Это гарантирует вызов pip от нужной версии Python и обходит системные блокировки.

python3 -m pip install requests

Конфликты зависимостей. При установке нескольких пакетов могут возникнуть несовместимые версии. Решение: изолировать каждую комбинацию в отдельное окружение, использовать pip check для выявления конфликтов после установки.

Права доступа. Если окружение создано с правами другого пользователя, может возникнуть ошибка Permission denied. Решение: создавать окружение в собственной директории пользователя и не использовать sudo для pip внутри venv.

- Python unable to create venv (ошибка создания виртуального окружения python)
- Venv bin python (путь к интерпретатору в виртуальном окружении)
- Venv python 3 (создание виртуального окружения с python 3)

Расширенные примеры работы с pip в виртуальном окружении

Ниже приведены нетривиальные сценарии установки, которые могут пригодиться при решении реальных задач.

Пример 1. Установка нескольких пакетов с точными ограничениями версий

Команда позволяет задать верхнюю и нижнюю границы для каждого пакета:

Пример
pip install 'requests>=2.25,<3.0' 'numpy==1.24.0' 'pandas>=1.5,<2.0'

После выполнения можно проверить установленные версии:

pip list
Package    Version
---------- -------
numpy      1.24.0
pandas     1.5.3
requests   2.28.2

Пример 2. Установка из requirements.txt с отключением зависимостей

Параметр --no-deps предотвращает автоматическую установку зависимостей, полезно при ручном контроле:

Пример
pip install --no-deps -r requirements.txt

Если в requirements.txt указаны flask и requests, а их зависимости (например, click, urllib3) не установлены, при импорте возникнет ошибка. Это осознанный выбор разработчика.

Пример 3. Установка пакета с проверкой хеша из локального архива

Для обеспечения целостности можно указать ожидаемый SHA-256 хеш:

Пример
pip install --hash=sha256:abc123...def456 ./mypackage-1.0.tar.gz

Если хеш не совпадает, pip откажет в установке. Этот метод часто используется в защищённых средах или при автоматизированной сборке образов.

Пример 4. Создание файла зависимостей после установки с помощью pip freeze

Команда pip freeze выводит все установленные пакеты с их версиями, что удобно для фиксации текущего набора:

Пример
pip freeze > requirements.lock

Содержимое requirements.lock после установки нескольких пакетов может выглядеть так:

certifi==2023.5.7
charset-normalizer==3.1.0
idna==3.4
requests==2.31.0
urllib3==2.0.3

Пример 5. Установка пакета напрямую из git-репозитория

Этот способ удобен для тестирования невыпущенных версий:

Пример
pip install git+https://github.com/psf/requests.git@v2.31.0

Также можно указать ветку, коммит или тег. После выполнения pip клонирует репозиторий и выполняет сборку пакета. Результат:

Successfully installed requests-2.31.0

Пример 6. Установка пакета в режиме разработки с дополнительными зависимостями

Если пакет содержит дополнительные наборы зависимостей (например, [dev]), их можно установить так:

Пример
pip install -e /path/to/mypackage[dev]

Подразумевается, что в pyproject.toml или setup.py определена секция extras_require с ключом dev. Это позволяет быстро развернуть окружение для разработки.

Установка пакетов в виртуальное окружение Python - comments

En
Python venv install packages (python)