Ответ
Python Eggs — это устаревший формат дистрибуции пакетов в Python, предшественник современных Python Wheels. Eggs использовались для распространения Python-пакетов вместе с метаданными и зависимостями, могли содержать как исходный код, так и скомпилированные расширения.
Основные особенности и причины устаревания:
- Содержание: Включали код, метаданные (например, зависимости) и иногда скомпилированные C-расширения.
- Управление: Устанавливались с помощью
easy_install(также устаревшего инструмента) из пакетаsetuptools. - Проблемы: Имели сложности с управлением бинарными зависимостями, версионированием и кросс-платформенной совместимостью, что приводило к проблемам при установке.
- Замена: Были вытеснены форматом Wheel (
.whl), который обеспечивает более быструю и надежную установку, особенно для пакетов с нативными расширениями, и лучше интегрирован сpip.
Пример создания Egg (устаревший способ, не рекомендуется):
# setup.py
from setuptools import setup
setup(
name="my_package",
version="0.1.0",
packages=["my_package"],
)
Затем в терминале:
python setup.py bdist_egg
Современная альтернатива: Для дистрибуции пакетов в Python сегодня повсеместно используются Python Wheels (.whl) и pip для их установки.
Ответ 18+ 🔞
А, блядь, Python Eggs! Ну это ж как древние артефакты, ёпта, прям из каменного века питонячьего. Представь себе — раньше, сука, не было этих ваших удобных whl-файлов, а были вот эти яйца, .egg. И это была, блядь, целая эпоха страданий и боли!
Что это за хуйня была и почему все рады, что она сдохла:
- Что внутри: Туда пихали и код, и метаданные (типа "эй, для работы мне нужен вот этот другой пакет"), а иногда и скомпилированные С-расширения, чтоб они там болтались, как горох в банке.
- Как ставили: Через
easy_install. Это такой предокpip, только, блядь, в разы более тупой и криворукий. Установишь одно — полпроекта разъёбывалось, потому что зависимости он ставил, как бог на душу положит. - Проблемы: О, это отдельная песня! С бинарниками — пиздец полный, с версиями — каша, с разными системами — вообще лотерея. Установишь яйцо на одной машине — работает. На другой — вылетает с ошибкой, потому что там библиотека системная на пол-версии отличается. Короче, волнение ебать, терпения ноль ебать.
- Что пришло на смену: Слава богу, придумали Wheels (колёса,
.whl). Вот это, блядь, технология! Ставятся быстро, чётко, предсказуемо. Иpipс ними дружит, как родной. Eggs на их фоне — это как телега рядом с Tesla.
Как это говно раньше делали (смотри и смейся, но не повторяй!):
# setup.py — файл, от которого сейчас у всех старых питонистов дёргается глаз
from setuptools import setup
setup(
name="my_package",
version="0.1.0",
packages=["my_package"],
)
А потом в консоли творили магию:
python setup.py bdist_egg
И вуаля — тебе выплюнуло этот самый .egg-файл, который ты потом с молитвой пытался куда-нибудь впихнуть.
Короче, вывод простой, как три копейки: Забудь про Eggs, как про страшный сон. Это история, музейный экспонат. Всё нынче крутится вокруг Python Wheels и pip. Живёшь в XXI веке — пользуйся нормальными инструментами, а не этими яйцами, которые только проблемы нести могут.