Методы инсталляции пакетов Python в проектах
Установка модулей Python: основные подходы и практические примеры
Как выполнить базовую установку пакета с помощью pip?
Самый распространённый способ - использование менеджера пакетов pip. Он поставляется вместе с Python, начиная с версии 3.4. Для установки модуля достаточно выполнить команду:
pip install requestsInstalling 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 numpyPython 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.txtPython uv install (установка пакетов с помощью uv в python)
Пример содержимого файла:
flask==2.3.0
requests>=2.28
numpyRequests 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.gitPython файл 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