2008-09-06 8 views

ответ

29

Python Enterprise Application Kit community От:

"Яйцо в питон, как баночки для Java ..."

Python яйцо способ пакетирования дополнительной информации с проектом Python, что позволяет проверять зависимости проекта и удовлетворять во время выполнения, а также , позволяя проектам предоставлять плагины для других проектов. Существует несколько двоичных форматов, которые олицетворяют яйца, но наиболее распространенным является формат .egg zipfile , потому что он является удобным для распространения проектов. Все форматы поддержки , включая данные пакета, общесистемные метаданные, расширения C и код Python .

Основные преимущества Python Яйца являются:

  • Они позволяют инструменты, как "Easy Install" Python менеджер пакетов

  • .egg файлы формата "нулевой установки" для Python упаковка; нет сборки или установки шага не требуется, просто положить их на PYTHONPATH или sys.path и использовать их (может потребоваться среды выполнения установленной, если расширения C используются или файлы данных)

  • Они могут включать в себя метаданные пакетов, такие, как другие яйца, они зависят от

  • они позволяют «пространство имен пакеты» (пакеты, которые содержат только другие пакетов) должны быть разделены на отдельные распределений (например, лещ. , скрученные., пик. * пакетов могут быть распределены как отдельные яйца, в отличие от обычных пакетов , которые всегда должны быть размещены под каталогом . Это позволяет , что теперь огромные монолитные пакеты быть распределены в виде отдельных компонентов .)

  • Они позволяют приложению или библиотеки, чтобы определить необходимую версии библиотеки, так что вы можете например, («Twisted-Internet> = 2.0») перед выполнением импорта twisted.internet.

  • Они большой формат для распространения расширений или плагинов для расширяемых приложений и каркасов (например, Trac, которая использует яйца для плагинов как 0.9b1), потому что яйцо runtime предоставляет простые API, чтобы найти яйца и найти их рекламируемую запись баллов (аналогично Eclipse's «точка расширения»).

  • Существуют также другие преимущества, которые могут быть получены из стандартного формата , аналогичного преимуществам Java-формата «jar».

-Adam

+0

Но что, если в зависимых пакетах Python не есть бинарные яйца, загруженные в PyPi? – Mitar 2012-06-15 15:24:04

2

.egg файлы в основном хороший способ развертывания приложения питона. Вы можете думать об этом как о файле .jar для Java.

Дополнительная информация here.

3

Яйца - довольно хороший способ распространения приложений python. Подумайте об этом как независимом от платформы файле .deb, который установит все зависимости и еще много чего. Преимущество заключается в том, что он прост в использовании для конечного пользователя. Недостатком является то, что может быть громоздким, чтобы упаковать приложение в файл .egg.

Вы также должны предложить альтернативные способы установки в дополнение к .eggs. Есть некоторые люди, которым не нравится использовать яйца, потому что им не нравится идея программного обеспечения, устанавливающего любое программное обеспечение, которое оно хочет. Обычно они, как правило, являются типами sysadmin.

1

Независимо от того, что вы делаете, не прекращайте распространять ваше приложение, также как tarball, так как это самый простой упаковочный формат для операционных систем с пакетом sysetem.

1

Для простых программ Python вам, вероятно, не нужно использовать яйца. Распространение необработанных файлов .py должно быть достаточным; это как распространение исходных файлов для GNU/Linux. Вы также можете использовать различные «упаковщики» ОС (например, py2exe или py2app) для создания файлов .exe, .dmg или других файлов для разных операционных систем.

Более сложные программы, например. Django, в значительной степени требует яйца из-за различных модулей и необходимых зависимостей.

4

Одно яйцо само по себе не лучше, чем правильный выпуск источника. Хорошей частью является обработка зависимостей. Как и пакеты debian или rpm, вы можете сказать, что вы зависите от других яиц, и они будут установлены автоматически (через pypi.python.org).

Второй комментарий: сам формат яйца представляет собой двоичный упакованный формат. Обычные пакеты python, которые состоят только из кода python, лучше всего распределяются как «исходные выпуски», поэтому «python setup.py sdist», которые приводят к .tar.gz. Они также обычно называются «яйцами» при загрузке в pypi.

Где вам нужны бинарные яйца: когда вы связываете некоторое расширение кода C. Тогда вам понадобятся несколько бинарных яиц (32-разрядный одноименный, оконный и т. Д.).

+0

Но что, если в зависимых пакетах Python не есть бинарные яйца, загруженные в PyPi? – Mitar 2012-06-15 15:23:30

 Смежные вопросы

  • Нет связанных вопросов^_^