pip下载的--platform,-abi和--implementation的有效值是什么?

eri*_*icg 6 python pip

PIP下载有几个标志,我想一起玩--platform--abi--implementation

在哪里可以找到这些标志的有效值的完整列表?

phd*_*phd 9

我认为没有一个明确的清单。你必须从不同的来源收集它。从 PEP 425 开始:https : //www.python.org/dev/peps/pep-0425/

蟒蛇标签:'py27','cp33'

abi 标签:'cp32dmu','无'

平台标签:“linux_x86_64”,“任何”

--implementation

cp: CPython
ip: IronPython
pp: PyPy
jy: Jython
Run Code Online (Sandbox Code Playgroud)

--platform

win32
linux_i386
linux_x86_64
Run Code Online (Sandbox Code Playgroud)

  • 其中包含一些信息,但不是全部。有像 https://www.python.org/dev/peps/pep-0513/ 这样的扩展名......我正在寻找完整的列表。 (5认同)
  • 如今最重要的“--platform”标签之一是“manylinux1_x86_64”,在 2012 年原始 PEP 中缺失。我还看到“manylinux1_i686”。python 2 有“--abi”标签“cp27m”和“cp27mu”来区分 ucs2 和 ucs4 unicode 构建标志。但这些在 python 3 中不再相关。使用 v19.2 中添加的新“pip debug”功能可以查看更多与标签相关的信息。相关 github [问题](https://github.com/pypa/pip/issues/6121)。 (2认同)

Car*_*din 6

如果您只下载一个包,您可以访问https://pypi.org并搜索可用的内容。

例如,对于orjson https://pypi.org/project/orjson/3.8.2/#files,您可以看到类似以下内容:

  • win_amd64
  • Manylinux_2_28_x86_64
  • Manylinux_2_28_aarch64
  • Manylinux_2_17_x86_64
  • 许多linux2014_x86_64
  • Manylinux_2_17_armv7l
  • Manylinux2014_armv7l
  • Manylinux_2_17_aarch64
  • Manylinux2014_aarch64
  • macosx_10_9_x86_64
  • macosx_11_0_arm64
  • macosx_10_9_universal2
  • macosx_10_7_x86_64

如果您好奇 Manylinux 的含义,请参阅: https: //github.com/pypa/manylinux

指的是在 shell 中manylinux_x_y运行时观察到的 glibc 版本。ldd --versionglibc 向后兼容,因此请选择等于或低于当前 glibc 版本的版本。


S3D*_*DEV 5

如果您有权访问需要下载软件包的 PC(或类似平台),根据文档可以调用以下函数来获取显式平台名称。

distutils.util.get_platform()
Run Code Online (Sandbox Code Playgroud)

平台标签只是distutils.util.get_platform()包含所有连字符和句点。替换为下划线 _。

更新:

由于distutils已被弃用,因此可以从 检索相同的内容sysconfig,如下所示:

sysconfig.get_platform()
Run Code Online (Sandbox Code Playgroud)

在我们的例子中,我们有离线的电脑(必须保持离线状态);因此,这种方法非常有效,可以确保我们为这些电脑下载正确的平台。