Python Wheels на Linux (как? И почему?)

Я знаю, что колеса являются бинарной версией модуля, загруженного на PyPI.

с pip install

  • На Windows: я получаю колеса загружены и установлены.
  • На Ubuntu: я должен получить исходный дистрибутив пакета, НО в некоторых случаях я получаю колеса.
  • На fedora: хитрый я должен установить с dnf

Я также попытался добавить колеса в свой пакет. Но я могу загружать только колеса для окон.

  • Почему некоторые пакеты предоставляют диски для платформы Linux?
  • Это нормально? Предоставление двоичных файлов вместо источника?
  • Почему я не могу предоставить колеса?

Примечание: я немного знаю о пакетах Fedora rpm. Меня сейчас интересуют диски на Ubuntu.

1 ответ

Решение

Почему некоторые пакеты предоставляют диски для платформы Linux?

Почему они не должны, если исходные дистрибутивы также доступны?:)

Ваш вопрос не ясен. Если бы вы имели в виду

Почему некоторые пакеты предоставляют платформы для платформы Linux вместо платформо-независимых?

затем взгляните на этот вопрос и его ответы. Если нет, пожалуйста, уточните свой вопрос.


На Ubuntu: я должен получить исходный дистрибутив пакета, НО в некоторых случаях я получаю колеса.

Попробуйте использовать:

pip install --no-binary :all: somepackage

Это должно сделать pip загрузите исходный дистрибутив, если он существует на PyPI. Я не знаю, почему на PyPI нет пакетов с исходным кодом для PyQt5, возможно потому, что их нельзя установить с pip и нужен целый набор инструментов для компиляции.


Это нормально? Предоставление двоичных файлов вместо источника?

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


Почему я не могу предоставить колеса?

Пытаться python setup.py bdist_wheel, Вам необходимо установить wheel пакет (на PyPI), чтобы он работал. Если ваш пакет поддерживает Python 2 и 3 и не содержит расширений C, добавьте --universal Возможность сделать " универсальный руль".

замещать bdist_wheel с sdist сделать источник распространения. Это создаст архив в dist каталог.

sdist создает архив формата по умолчанию для текущей платформы. Формат по умолчанию - это tar-файл gzip (.tar.gz) в Unix и ZIP-файл в Windows.

Вы можете указать столько форматов, сколько хотите, используя --formats вариант, например:

python setup.py sdist --formats=gztar,zip

создать сжатый архив и файл zip

(Цитата из https://docs.python.org/3/distutils/sourcedist.html)


Более подробная информация об упаковке и колесах доступна здесь: https://packaging.python.org/distributing/

Другие вопросы по тегам