Методы инсталляции пакетов Python в проектах

Раздел: Python -> Управление зависимостями

Установка модулей Python: основные подходы и практические примеры

Как выполнить базовую установку пакета с помощью pip?

Самый распространённый способ - использование менеджера пакетов pip. Он поставляется вместе с Python, начиная с версии 3.4. Для установки модуля достаточно выполнить команду:

pip install requests

Installing python modules (установка модулей python)

Эта команда загружает пакет requests из официального репозитория PyPI и устанавливает его в текущее окружение Python. После завершения можно импортировать модуль в своём коде:

import requests
response = requests.get('https://api.github.com')
print(response.status_code)

Python requirements (файл requirements.txt в python)

200

Python requirements file (файл requirements.txt в python)

Для уточнения версии Python (если в системе установлено несколько) используется явный вызов:

python3 -m pip install numpy

Python get requirements (получение списка зависимостей requirements.txt в python)

Типичная проблема - ошибка Permission denied при установке в системную директорию. Решение: установить пакет только для текущего пользователя с флагом --user:

pip install --user pandas

сделать requirements python (создание requirements.txt для python)

Или использовать виртуальное окружение (см. раздел вариантов).

Как установить зависимости из файла requirements.txt?

Файл requirements.txt содержит список пакетов с версиями. Команда устанавливает все перечисленные модули:

pip install -r requirements.txt

Python uv install (установка пакетов с помощью uv в python)

Пример содержимого файла:

flask==2.3.0
requests>=2.28
numpy

Requests python versions (проверка версии библиотеки requests в python)

Цель - воспроизводимость окружения на разных машинах.

Конфликт версий: если два пакета требуют разные версии одной зависимости, pip сообщит об ошибке. Решение - обновить все пакеты или вручную согласовать версии в requirements.txt.

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

Используется оператор == после имени пакета:

pip install django==4.1

проверить библиотеки python (проверка установленных библиотек python)

Также можно указать диапазоны: >=, <=, ~= (совместимая версия). Пример:

pip install 'celery[redis]>=5.2, <5.4'

No matching distribution found for python (решение ошибки «no matching distribution found» при установке пакетов python)

Это гарантирует использование заданной версии, избегая неожиданных изменений API.

Если указанная версия не найдена в PyPI, возникает ошибка ERROR: No matching distribution found. Проверьте правильность написания имени и версии.

Как установить модуль из исходного кода (GitHub)?

Пакеты, которые ещё не опубликованы в PyPI, можно установить напрямую из репозитория:

pip install git+https://github.com/author/repo.git

Python файл requirements (файл requirements.txt в python)

Для указания ветки или тега:

pip install git+https://github.com/author/repo.git@v1.0

как создать requirements txt файл python (создать файл requirements.txt)

Либо скачать архив и выполнить:

pip install /path/to/package.tar.gz

Такой подход удобен для тестирования последних изменений до официального релиза.

Отсутствие файла setup.py или pyproject.toml приведёт к ошибке. Современные проекты на основе Poetry или Flit используют альтернативные файлы.

Как установить пакеты с помощью Conda?

Для научных вычислений часто используют Conda (входит в дистрибутив Anaconda):

conda install scipy

Conda автоматически разрешает сложные зависимости, включая не-Python библиотеки (например, BLAS). Для поиска пакетов из дополнительного канала:

conda install -c conda-forge opencv

Цель - создание изолированного окружения с минимальными конфликтами.

Смешивание pip и conda может привести к непредсказуемым конфликтам. Рекомендуется устанавливать пакеты преимущественно одним менеджером в рамках одного окружения.

Как установить модули в виртуальное окружение?

Виртуальное окружение изолирует зависимости проекта. Создание и активация:

python -m venv myenv
# Windows:
myenv\Scripts\activate
# Linux/macOS:
source myenv/bin/activate

После активации все команды pip install будут устанавливать пакеты только в myenv. Для деактивации:

deactivate

Использование виртуальных окружений - стандарт для любого проекта.

Ошибка при активации на Windows из-за политики выполнения скриптов: запустите PowerShell от администратора и выполните Set-ExecutionPolicy RemoteSigned.

Как обновить или удалить пакет?

Обновление:

pip install --upgrade requests

Удаление:

pip uninstall requests

Команда pip list показывает все установленные пакеты:

pip list
Package           Version
----------------- -------
beautifulsoup4    4.12.0
pip               23.1.2
requests          2.31.0

Расширенные примеры установки пакетов Python

Ниже приведены сценарии, выходящие за рамки базовой установки.

Установка с проверкой хешей (requirements.txt)

Флаг --require-hashes заставляет pip проверять целостность скачиваемых пакетов. Файл должен содержать хеши:

Пример
# requirements.txt
requests==2.31.0 --hash=sha256:58cd2187c01e70e6e26505bca751777ab9ab5b7e8b1e7b6a1b5b7b2b8b7b9b1b

Выполнение:

Пример
pip install --require-hashes -r requirements.txt
Successfully installed requests-2.31.0

Если хеш не совпадает, установка прерывается с ошибкой.

Получить хеши можно с помощью команды pip hash или через API PyPI.

Offline установка (использование колес)

Для машин без доступа к интернету заранее скачиваются wheel-файлы:

Пример
pip download -d ./wheels numpy pandas

На целевой машине:

Пример
pip install --no-index --find-links ./wheels numpy pandas
Processing ./wheels/numpy-1.24.3-cp39-cp39-manylinux_2_17_x86_64.whl
Successfully installed numpy-1.24.3 pandas-1.5.3

Параметр --no-index отключает обращение к PyPI.

Установка с использованием Poetry

Современный менеджер зависимостей Poetry упрощает управление версиями. После установки Poetry:

Пример
poetry new myproject
cd myproject
poetry add flask
Using version ^2.3 for flask
Creating virtualenv myproject-...

Poetry автоматически создаёт виртуальное окружение и обновляет файл pyproject.toml. Для установки из существующего проекта:

Пример
poetry install

Это гарантирует точное соответствие зависимостей, указанных в poetry.lock.

Глобальная установка инструментов (pipx)

Для пакетов, которые предоставляют консольные утилиты (например, black, pytest), лучше использовать pipx - он устанавливает их в изолированные окружения:

Пример
pipx install black

После этого команда black становится доступна в терминале, но не затрагивает системные пакеты.

pipx install black
  installed package black 23.3.0, installed using Python 3.9.16
  These apps are now globally available
    - black

Установка из локального репозитория с поддержкой редактирования (editable)

При разработке собственного пакета удобно установить его в режиме редактирования - изменения в исходном коде сразу отражаются:

Пример
pip install -e ./mypackage

Пакет будет импортироваться из той же директории, а не из site-packages.

Массовое обновление всех устаревших пакетов

Список устаревших:

Пример
pip list --outdated
Package    Version Latest Type
---------- ------- ------ -----
requests   2.28.0  2.31.0 wheel
numpy      1.24.0  1.25.0 wheel

Для обновления всех можно использовать внешний инструмент pip-upgrader или написать скрипт:

Пример
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

Установка модулей Python - comments

En
Installing python modules (python)