Некоторые колесные пакеты являются кроссплатформенными;некоторые зависят от платформы.
Эта информация включена в название колеса.Например:
pytz-2018.4-py2.py3-none-any.whl (510kB)
То, что py2.py3
означает, что оно работает в любой реализации Python, как Python 2.x и 3.x, и что non-any
означает, что оно работает на любой платформе.
numpy-1.14.3-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
То, что cp36-cp36m
означает, что он работает только в CPython 3.6, и что macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64
означает, что он построен для x86_64 macOS версий 10.9-10.10.(Грубо говоря, это минимальная и рекомендуемая версии macOS; большинство других платформ не так сложны.)
Наиболее распространенная причина того, что пакет зависит от платформы, состоит в том, что он включает в себя CМодули расширения API, как в случае с numpy.Но могут быть и другие причины.Например, он может включать собственный исполняемый файл для subprocess
или может использовать ctypes
для доступа к системным API и т. Д.