Zip_safe релевантен только для формата яйца? - PullRequest
2 голосов
/ 11 февраля 2020

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

С этим допущением: zip_safe релевантен для любого другого формата распространения, кроме egg?

Что я нашел

Согласно это :

Логический (True или False) флаг, указывающий, можно ли безопасно установить проект и запустить его из zip-файла. Если этот аргумент не указан, команда bdist_egg должна будет анализировать все содержимое вашего проекта на предмет возможных проблем каждый раз, когда он собирает яйцо.

Setuptools не упоминает колеса. Поэтому я думаю, что это не относится к колесам. Так что, если я не собираю яйца, мне это не нужно?

Но тогда, если я устанавливаю пакеты с pip install -e ., создается впечатление, что он создает файл яйца (ну, [package name].egg-info ) ... так что, может быть, яйцо не устарело, даже с Python 3,8?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

CPython хранилище вообще не упоминает zip_safe; то есть distutils не поддерживает его.

Его можно найти в setuptools код , но на самом деле используется только в bdist_egg.

Так что да, опция актуальна только для яиц.

0 голосов
/ 11 февраля 2020

Я считаю, что раздел "Можно ли импортировать код Python непосредственно из файла колеса?" с PEP 427 может ответить на ваш вопрос. Короче говоря, технически возможно оставить пакеты в сжатом виде, но есть преимущества в их установке в разархивированном виде: более легкий доступ к метаданным и предотвращение некоторых угловых случаев (невозможно выполнить двоичные файлы в zip-файле). Так что это объясняет, почему zip_safe больше не имеет отношения вообще и для колес в частности.

В настоящее время, я считаю, яйца используются только в некоторых редких конкретные c случаи. Одним из них является режим разработки setuptools или редактируемый режим пипса , чтобы воспользоваться преимуществом egg link .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...