Как загрузить универсальное колесо Python для Python 2 и 3?
У меня есть пакет на PyPi, и при подготовке нового релиза я строю исходный дистрибутив, строю колесо и загружаю, все с setuptools.
Однако я обнаружил, что он загружает только колесо для версии Python, используемой в команде upload (python и python3).
Вот шаги, которые я предпринимаю:
python3 setup.py sdist
python3 setup.py bdist_wheel --universal
python3 setup.py sdist bdist_wheel upload
Согласно руководству пользователя по упаковке Python :
"универсальные колеса" - это колеса, которые являются чистыми python (т. е. не содержат компиляции расширения) и поддерживают Python 2 и 3
Так что это кажется мне правильным.
После шага сборки колеса я проверяю, что колесо построено и имеет формат имени файла PACKAGE-VERSION-py2.py3-none-any.whl в dist, но когда я запускаю загрузку с python3 setup.py sdist bdist_wheel upload, он создает PACKAGE-VERSION-py3-none-any.whl и загружает это.
Если я запускаю python setup.py sdist bdist_wheel upload, он делает то же самое и загружает Python 2-только один.
1 ответ:
Команда
python3 setup.py sdist bdist_wheel uploadсоздаетновое колесное распределение.Вам нужно будет снова включить те же флаги в эту командную строку:
python3 setup.py sdist bdist_wheel --universal uploadЛучше использовать
twineдля управления загрузками; он будет использовать зашифрованное соединение (setuptoolsиспользует незашифрованное соединение и таким образом отправляет ваше имя пользователя и пароль в открытом виде), и это позволяет вам проверять и тестировать дистрибутив перед загрузкой:python3 setup.py sdist python3 setup.py bdist_wheel --universal # test the distributions twine upload dist/*Шпагат в настоящее время также является единственным инструментом, который устанавливает метаданные 'py versions' для PyPI правильно для универсальных колес .