Я собираю свою собственную установку Python, затем использую pip для установки в нее некоторых пакетов. Я хочу использовать готовые двоичные диски для пакетов типа Криптография .
- Python 2.7.15 / 2.7.16
- Пип 19.0.3
- Setuptools 40.8.0
На GNU / Linux просто работает: он захватывает колесо manylinux1 и все работает просто отлично.
В MacOS он отказывается загружать какие-либо двоичные диски для большинства версий. Я добавил множество -v
опций в pip, но все, что он говорит, это:
$ mypython -s -u -m pip install -v --only-binary 'cryptography' 'cryptography==2.6.1'
...
Skipping link https://files.pythonhosted.org/packages/.../cryptography-2.6.1-cp27-cp27m-macosx_10_6_intel.whl#sha256=... (from https://pypi.org/simple/cryptography/) (requires-python:>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*); it is not compatible with this Python
...
Could not find a version that satisfies the requirement cryptography==2.6.1 (from versions: 1.0.1, 1.0.2, 1.1, 1.1.1, 1.1.2, 1.2, 1.2.1, 1.2.2, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.4, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.6, 1.7, 1.7.1, 1.8, 1.8.1, 1.8.2)
Я пытался понять, почему эти конкретные версии в порядке, но не самые последние, и единственное, что я вижу, это то, что эти версии имеют определенный пакет x86_64
wheel, в то время как более поздние имеют только толстый двоичный файл intel
колесные пакеты. Мой Python имеет определение пакета:
>>> import distutils.util
>>> distutils.util.get_platform()
'macosx-10.12-x86_64'
Так что я подумал, так ли это. Я изменил мою сборку Python для использования MACOSX_DEPLOYMENT_TARGET=10.6
и добавил --enable-universalsdk=/ --with-universal-archs=intel
в строку конфигурации, и теперь мой Python сообщает об этом:
>>> import distutils.util
>>> distutils.util.get_platform()
'macosx-10.6-intel'
Тем не менее, я все еще получаю те же сообщения от pip, когда пытаюсь установить.
Так что мне интересно, есть ли способ заставить pip быть более информативным и точно сказать мне , что в этих бинарных пакетах ему не нравится, то есть заставляет его сказать " не совместимы "и пропустить их?