pip выбирает неспецифический руль от PyPI
Моя посылка, airship-steamcloud
, находится на PyPI, и я генерирую три колеса для Windows (32- и 64-разрядные) и OS X, а также один, содержащий все двоичные файлы для каждой платформы. Однако всякий раз, когда я устанавливаю его через pip
на компьютере под управлением OS X он загружает неспецифическое колесо:
Collecting airship-steamcloud
Downloading airship_steamcloud-1.4.0-py2.py3-none-any.whl (595kB)
100% |████████████████████████████████| 598kB 746kB/s
Это проблема с названием колеса?
Список колес доступен здесь. Я генерирую их с помощью этого скрипта.
1 ответ
Теги PEP 425 используются для подсказки установщику (здесь пункт), чтобы определить, какое колесо лучше всего использовать. Обычно:
Рекомендуется, чтобы установщики пытались выбрать наиболее полнофункциональный сборочный дистрибутив (наиболее специфичный для среды установки) по умолчанию, прежде чем переходить к чистым версиям Python, опубликованным для более старых выпусков Python.
Таким образом, вы правы, если предположите, что сначала нужно выбрать конкретную ОС, и это в целом то, что делает PIP. Теперь, если вы все еще не работаете на MacOSX 10.6 (возможно, но сомнительно), any
тег, скорее всего, будет выбран более конкретным 10.6
тег, потому что этот тег не будет соответствовать более новой версии MacOSX.
Одним из способов решения этой проблемы является создание колеса для каждой версии MacOSX, которую вы поддерживаете (и поскольку двоичные файлы 10.6, вероятно, будут работать на более поздних версиях MacOSX, в большинстве случаев это будут одни и те же двоичные файлы). Другой способ - улучшить pip и metatada таким же образом, как это было сделано для Linux в PEP 514.