Подтвердить что ты не робот

В чем преимущества упаковки вашей библиотеки/приложения python в файл .egg?

Я читал некоторые о файлах .egg, и я заметил их в моем каталоге lib, но каковы преимущества/недостатки использования тогда как разработчика?

4b9b3361

Ответ 1

Из сообщества Python Enterprise Application Kit:

"Яйца для Pythons, поскольку Jars для Java..."

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

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

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

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

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

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

  • Они позволяют приложениям или библиотекам указывать необходимые версию библиотеки, чтобы вы могли например требуется ( "витой Интернет >= 2,0" ) перед импортом twisted.internet.

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

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

-Adam

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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

Подробнее здесь.

Ответ 5

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

Ответ 6

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

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