Я новичок в Python и просто пытаюсь понять, как работают его пакеты. Предположительно eggs
представляют собой своего рода упаковочный механизм, но каков был бы краткий обзор того, какую роль они играют, и может быть некоторая информация о том, почему они полезны и как их создавать?
Что такое яйцо питона?
Ответы (3)
Примечание. Упаковка для яиц заменена упаковкой Wheel. а>
Та же концепция, что и .jar
файл в Java, это .zip
файл с некоторыми файлами метаданных, переименованными в .egg
, для распространения кода в виде пакетов.
В частности: внутренняя структура яиц Python
«Яйцо Python» - это логическая структура, воплощающая выпуск определенной версии проекта Python, включающей его код, ресурсы и метаданные. Существует несколько форматов, которые можно использовать для физического кодирования яйца Python, и другие могут быть разработаны. Однако ключевой принцип яиц Python заключается в том, что они должны быть доступны для обнаружения и импорта. То есть приложение Python должно иметь возможность легко и эффективно определять, какие яйца присутствуют в системе, и гарантировать, что желаемое содержимое яиц можно импортировать.
Формат
.egg
хорошо подходит для распространения и простой деинсталляции или обновления кода, поскольку проект, по сути, самодостаточен в одном каталоге или файле и не связан с кодом или ресурсами любого другого проекта. Это также позволяет одновременно устанавливать несколько версий проекта, так что отдельные программы могут выбирать версии, которые они хотят использовать.
Файл .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
«Egg» - это импортируемый формат распространения одного файла для проектов, связанных с Python.
«Краткое руководство по яйцам Python» отмечает, что «яйца для питонов являются банками. относятся к Java ... "
Яйца на самом деле богаче банок; они содержат интересные метаданные, такие как сведения о лицензировании, зависимости от выпуска и т. д.