Какой самый пифонический:установка модулей Python через менеджер пакетов (macports, apt) или через pip/easy_install/setuptools

StackOverflow https://stackoverflow.com/questions/1559372

Вопрос

Обычно я обычно устанавливаю что-то через менеджер пакетов для unixy-вещей.Однако, когда я много программировал на Perl, я использовал CPAN, более новые версии и все такое.

Обычно я устанавливал системные компоненты через менеджер пакетов, а языковые — через собственный менеджер пакетов (gem/easy_install|pip/cpan).

Теперь, используя в основном Python, мне интересно, какая лучшая практика?

Это было полезно?

Решение

Версия системного Python и ее библиотеки часто используются программным обеспечением в дистрибутиве.Если используемое вами программное обеспечение поддерживает те же версии Python и все библиотеки, что и ваш дистрибутив, использование дистрибутивных пакетов будет работать нормально.

Однако довольно часто вам нужна версия пакетов для разработки, или более новая версия, или более старые версии.А потом это уже не работает.

Поэтому обычно рекомендуется установить собственную версию Python, которую вы используете для разработки, и создать среду разработки с помощью построить из или виртуальное окружение или и то, и другое, чтобы изолировать системный Python и среду разработки друг от друга.

Другие советы

Есть два совершенно противоположных лагеря:один в пользу пакетов, предоставляемых системой, и один в пользу отдельной установки.Лично я в лагере «системных пакетов».Ниже я приведу аргументы с каждой стороны.

Пакеты системы Pro:системный упаковщик уже заботится о зависимостях и соответствии общим системным политикам (например, макету файла).Системные пакеты предоставляют обновления безопасности, но при этом заботятся о том, чтобы не нарушить совместимость, поэтому иногда они переносят исправления безопасности, которые не перенесли авторы основной ветки разработки.Системные пакеты «безопасны» по отношению к ним.обновления системы:после обновления системы у вас, вероятно, также будет новая версия Python, но все ваши модули Python все еще будут там, если они получены от системного упаковщика.Это все личный опыт работы с Debian.

Пакеты системы Con:не все программное обеспечение может поставляться в виде системного пакета или не в последней версии;установка чего-либо самостоятельно в систему может привести к поломке системных пакетов.Обновления могут привести к поломке вашего приложения.

Про отдельную установку:Некоторые люди (в частности, разработчики веб-приложений) утверждают, что вам абсолютно необходима повторяемая настройка, включающая только те пакеты, которые вам нужны, и полностью отделенная от системы Python.Это выходит за рамки самостоятельной установки и установки.системные пакеты, поскольку даже при самостоятельной установке вы все равно можете изменить системный Python;при отдельной установке этого не произойдет.Как отмечает Леннарт, сейчас существуют специальные цепочки инструментов для поддержки этой настройки.Люди утверждают, что только такой подход может гарантировать повторяемые результаты.

Возможна отдельная установка:вам придется самостоятельно исправлять ошибки и убедиться, что все ваши пользователи используют отдельную установку.В случае веб-приложений последнего обычно легко достичь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top