Что такое яйцо питона?

Я новичок в Python и просто пытаюсь понять, как работают его пакеты. Предположительно eggs представляют собой своего рода упаковочный механизм, но каков был бы краткий обзор того, какую роль они играют, и может быть некоторая информация о том, почему они полезны и как их создавать?


person Bialecki    schedule 12.01.2010    source источник


Ответы (3)


Примечание. Упаковка для яиц заменена упаковкой Wheel.

Та же концепция, что и .jar файл в Java, это .zip файл с некоторыми файлами метаданных, переименованными в .egg, для распространения кода в виде пакетов.

В частности: внутренняя структура яиц Python

«Яйцо Python» - это логическая структура, воплощающая выпуск определенной версии проекта Python, включающей его код, ресурсы и метаданные. Существует несколько форматов, которые можно использовать для физического кодирования яйца Python, и другие могут быть разработаны. Однако ключевой принцип яиц Python заключается в том, что они должны быть доступны для обнаружения и импорта. То есть приложение Python должно иметь возможность легко и эффективно определять, какие яйца присутствуют в системе, и гарантировать, что желаемое содержимое яиц можно импортировать.

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

person Community    schedule 12.01.2010

Файл .egg - это формат распространения пакетов Python. Это просто альтернатива дистрибутиву исходного кода или Windows exe. Но обратите внимание, что для чистого Python файл .egg полностью кроссплатформенный.

Сам файл .egg по сути является файлом .zip. Если вы измените расширение на «zip», вы увидите, что внутри архива будут папки.

Кроме того, если у вас есть файл .egg, вы можете установить его как пакет, используя easy_install

Пример: Чтобы создать .egg файл для каталога, скажем mymath, который сам может иметь несколько скриптов Python, выполните следующий шаг:

# setup.py
from setuptools import setup, find_packages
setup(
    name = "mymath",
    version = "0.1",
    packages = find_packages()
    )

Затем с терминала выполните:

 $ python setup.py bdist_egg

Это приведет к созданию большого количества выходных данных, но когда он будет завершен, вы увидите, что у вас есть три новых папки: build, dist и mymath.egg-info. Единственная папка, которая нас интересует, - это папка dist, в которой вы найдете свой .egg файл, mymath-0.1-py3.5.egg с номером версии Python (установка) по умолчанию (мой здесь: 3.5)

Источник: блог библиотеки Python

person kmario23    schedule 13.06.2016
comment
хотя файл яйца переносится между операционными системами, следует отметить, что он содержит скомпилированный код pyc, поэтому яйцо, скомпилированное с одной версией Python (X.Y), несовместимо с другими версиями. - person Björn Lindqvist; 22.02.2021

«Egg» - это импортируемый формат распространения одного файла для проектов, связанных с Python.

«Краткое руководство по яйцам Python» отмечает, что «яйца для питонов являются банками. относятся к Java ... "

Яйца на самом деле богаче банок; они содержат интересные метаданные, такие как сведения о лицензировании, зависимости от выпуска и т. д.

person Aerin    schedule 26.02.2018