Ответ
В Python для управления зависимостями проекта и установки библиотек используются следующие основные пакетные менеджеры:
-
pip(Pip Installs Packages):- Назначение: Стандартный и наиболее распространенный менеджер пакетов для Python. Он является де-факто стандартом для установки пакетов из PyPI (Python Package Index).
- Почему: Позволяет легко устанавливать, обновлять и удалять пакеты, а также управлять файлами
requirements.txtдля фиксации зависимостей проекта. - Пример команд:
pip install package_name # Установка пакета pip uninstall package_name # Удаление пакета pip freeze > requirements.txt # Экспорт установленных пакетов в файл pip install -r requirements.txt # Установка пакетов из файла
-
conda:- Назначение: Кроссплатформенный менеджер пакетов и окружений, особенно популярен в области Data Science и машинного обучения.
- Почему: Управляет не только Python-пакетами, но и бинарными зависимостями (например, компилированными библиотеками C/C++), что критично для многих научных библиотек (NumPy, SciPy, TensorFlow). Также позволяет легко создавать и переключаться между изолированными окружениями.
- Пример команд:
conda install package_name # Установка пакета conda create -n myenv python=3.9 # Создание нового окружения conda activate myenv # Активация окружения conda list # Список установленных пакетов
-
Poetry:- Назначение: Современный инструмент для управления зависимостями, виртуальными окружениями и сборки пакетов.
- Почему: Обеспечивает детерминированное управление зависимостями (фиксирует точные версии), упрощает создание и публикацию пакетов, а также автоматически управляет виртуальными окружениями. Использует файл
pyproject.tomlдля конфигурации. - Пример команд:
poetry add package_name # Добавление зависимости poetry install # Установка зависимостей из pyproject.toml poetry run python my_script.py # Запуск скрипта в контексте окружения poetry build # Сборка пакета
Виртуальные окружения
Для изоляции зависимостей и предотвращения конфликтов между проектами крайне рекомендуется использовать виртуальные окружения. Основные инструменты для этого:
venv: Встроенный модуль Python (начиная с Python 3.3) для создания легковесных виртуальных окружений.python -m venv myenv source myenv/bin/activate # Linux/macOS myenv\Scripts\activate # Windowsvirtualenv: Более мощная и гибкая альтернативаvenv, поддерживающая более старые версии Python и предоставляющая дополнительные возможности.pip install virtualenv virtualenv myenv source myenv/bin/activatepipenv: Объединяет функциональностьpipиvirtualenv, упрощая управление зависимостями и окружениями с помощью файлаPipfile.pip install pipenv pipenv install pipenv shellPoetry: Как упомянуто выше, включает функциональность управления виртуальными окружениями по умолчанию, создавая их автоматически для каждого проекта.
Выбор пакетного менеджера и инструмента для виртуальных окружений зависит от специфики проекта, требований к управлению бинарными зависимостями и предпочтений команды разработчиков.