Почему easy_install извлекает некоторые яйца python, а не другие?
В моем каталоге /usr/local/lib/python.../dist-package у меня есть каталоги .egg и .egg.
Почему установщик выбирает дополнительные пакеты в каталог .egg, но оставляют другие файлы с расширениями .egg?
Ответ 1
Если пакет содержит только код pure-Python, он может оставаться только файлом яйца. Интерпретатор Python может загружать модули Python непосредственно из яйца. Если пакет содержит модули, написанные на C или других данных, необходимо извлечь яйцо, чтобы можно было получить доступ к C-модулям и/или данным. Полагаю, что поведение пакетов по умолчанию. Новые версии Python могут загружать C-модули из файлов-яиц; Я не уверен в этой части.
Создатель пакета также может специально проинструктировать установщика об распаковке пакета, передав zip_safe = False to setup() в свои setup.py.
Наконец, человек, выполняющий установку, может явно сказать easy_install, чтобы распаковать яйца, передав ему опцию -Z или установив zip_ok = false в файле pydistutils.cfg.
Ответ 2
Я не могу объяснить, почему некоторые яйца заархивированы (файлы), а некоторые - это каталоги, но я могу предложить это: если вы ненавидите замятые яйца (как и я), поместите это в раздел [easy_install] вашего ~/.pydistutils.cfg: