pypi: Почему не все пакеты используют колесо? - PullRequest
2 голосов
/ 23 мая 2019

Этот python wheel веб-сайт сообщает, что только 300 из 360 лучших пакетов используют wheel.Я также проанализировал экосистему Python и обнаружил, что около 2961 пакета из топ-5000 используют wheel, а другие нет.

Мои вопросы:

  1. Если они неt использовать wheel, они используют egg?
  2. Почему они не используют wheel?Это просто лень авторов или что-то еще, что мешает им использовать колесо.
  3. Я также обнаружил в этом посте, что wheel останавливает сценарии установки времени (поправьте меня, если я 'м здесь не так).Итак, разве это не тот случай, когда из-за некоторых функций wheel эти пакеты не могут использовать wheel (потому что им могут понадобиться некоторые функции файла setup.py во время установки, например, сценарии установки времени).

1 Ответ

3 голосов
/ 23 мая 2019

Если они не используют колесо, они используют яйцо?

Они, вероятно, нет. Колеса - это встроенные дистрибутивы , альтернатива - предоставить исходный дистрибутив , так что, скорее всего, эти пакеты публикуют (исходные дистрибутивы имеют имена файлов, оканчивающиеся на .zip или .tar.gz.

Почему они не используют колесо? Это просто лень авторов или что-то еще, что мешает им использовать колесо.

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

Я также обнаружил в этом посте, что колесо останавливает сценарии установки времени (поправьте меня, если я ошибаюсь).

Это правильно: колеса созданы для данной платформы, и поэтому во время установки ничего не делают, кроме как помещают пакет в путь.

Итак, разве из-за некоторых функций колеса эти пакеты не могут использовать колесо (потому что им могут понадобиться некоторые функции файла setup.py во время установки, например, сценарии установки времени).

Не совсем, любой пакет, который можно установить, может создать колесо. Существует вероятность того, что данный пакет делает больше, чем просто установка во время установки (например, возможно, он также загружает некоторые большие файлы или что-то из внешнего источника), но подобные шаблоны обычно не рекомендуется.

...