Который является большей частью pythonic: установка модулей Python через диспетчер пакетов (macports, склонный) или через pip/easy_install/setuptools

Я должен согласиться со многими сообщениями на этом. Я использовал обоих, экстенсивно, во множестве настроек. Если бы я мог бы отменить проектное решение, оно должно было бы использовать, в спящем режиме. Мы на самом деле планировали выпуск в одном из наших продуктов для свопинга, в спящем режиме для iBatis и Spring-JDBC для подхода best-of-all-worlds. Я могу сделать, чтобы новый разработчик вошел в курс дела с помощью Spring-JDBC, Spring-MVC, МОК Spring и iBatis быстрее, чем если бы я просто определил задачу для них с, в спящем режиме.

В спящем режиме, является просто слишком сложным для этого разработчика KISS. И небеса помогают, Вы с в спящем режиме, если Ваш DBA видит сгенерированный SQL, база данных видит и передает Вас обратно с оптимизированными версиями.

11
задан chiggsy 13 October 2009 в 10:25
поделиться

2 ответа

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

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

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

17
ответ дан 3 December 2019 в 02:11
поделиться

Существует два совершенно противоположных лагеря: один выступает за пакеты, предоставляемые системой, а другой - за отдельную установку. Я лично в лагере "системные пакеты". Ниже я приведу аргументы с каждой стороны.

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

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

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

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

17
ответ дан 3 December 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: