pip
, обычно используют:
requirements.txt
: Файл, содержащий список зависимостей и их версий. Создается командой pip freeze > requirements.txt
и устанавливается pip install -r requirements.txt
.venv
или virtualenv
): Изолируют зависимости проекта от глобальных библиотек и других проектов. Создаются с помощью python3 -m venv .venv
(или virtualenv .venv
) и активируются source .venv/bin/activate
(в Linux/macOS) или .venv\Scripts\activate
(в Windows).pyproject.toml
и poetry
или pipenv
: Более продвинутые инструменты для управления зависимостями и сборки пакетов. poetry
и pipenv
автоматически управляют виртуальными окружениями и гарантируют воспроизводимость сборок.requirements.txt
можно указывать точные версии (==
), диапазоны (>=
, <=
, ~=
) или исключать версии (!=
) для контроля обновлений.Управление зависимостями в Python-проектах с использованием pip
включает несколько ключевых стратегий и инструментов, направленных на обеспечение воспроизводимости и стабильности вашего окружения:
1. Использование Virtual Environments (Виртуальные окружения):
venv
(стандартный модуль в Python 3.3+) или virtualenv
(сторонний пакет).python3 -m venv .venv
(или virtualenv .venv
)source .venv/bin/activate
.venv\Scripts\activate
pip install
будут влиять только на это окружение.deactivate
2. Файл `requirements.txt` (Список зависимостей):
pip freeze > requirements.txt
pip install -r requirements.txt
package_name==version
(например, requests==2.28.1
) для точной фиксации версий.>=
, <=
, !=
, чтобы указать диапазон допустимых версий. Однако, рекомендуется фиксировать точные версии для максимальной воспроизводимости.3. Файл `pyproject.toml` и `poetry.lock` (Poetry):
Poetry
- более современный инструмент для управления зависимостями. Он объединяет функциональность pip
, venv
и упрощает процесс управления проектом.pyproject.toml
содержит метаданные проекта, включая список зависимостей.poetry.lock
- файл, создаваемый Poetry
, содержит точную информацию о разрешенных версиях зависимостей (как прямых, так и транзитивных). Позволяет воспроизводить окружение с абсолютной точностью.Poetry
:
Poetry
: pip install poetry
poetry new my-project
poetry add requests
poetry install
(создаст virtualenv и установит зависимости)poetry update
4. Файл `Pipfile` и `Pipfile.lock` (Pipenv):
Pipenv
- еще один инструмент для управления зависимостями, созданный как улучшенная замена для pip + virtualenv + requirements.txt
.Pipfile
содержит список зависимостей.Pipfile.lock
содержит точную информацию о разрешенных версиях зависимостей, как и poetry.lock
.Pipenv
:
Pipenv
: pip install pipenv
pipenv shell
pipenv install
(создаст virtualenv и установит зависимости)pipenv install requests
5. Обновление зависимостей:
pip install --upgrade package_name
requirements.txt
, можно использовать pip install --upgrade -r requirements.txt
(но это может привести к проблемам, если не зафиксированы точные версии).Poetry
или Pipenv
для более безопасного и управляемого обновления зависимостей.6. Зависимости разработки (Development Dependencies):
Poetry
и Pipenv
позволяют явно указывать такие зависимости.Poetry
): poetry add --dev pytest
Рекомендации:
requirements.txt
, poetry.lock
или Pipfile.lock
.Poetry
или Pipenv
для более удобного и современного управления зависимостями.Правильное управление зависимостями критически важно для обеспечения воспроизводимости, избежания конфликтов версий и поддержания стабильности вашего Python-проекта.