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/