Python轮子名称中的'cp3xm'和'cp2xm'是什么意思?

zhi*_*lim 6 python pip python-wheel

据我所知,pythonwheel的命名规则是

package_version-related_python_version-none-32bits_or_64bits.whl
Run Code Online (Sandbox Code Playgroud)

例如,

numpy?1.11.2+mkl?cp35?none?win_amd64.whl
Run Code Online (Sandbox Code Playgroud)

在 Windows 64 位平台上运行的 Python3.5 是 1.11.2 版本的 numpy。 参考

目前我注意到Python 扩展包的非官方 Windows 二进制文件中 Python 包的命名使用“cpxxm”替换“none”。例如,

numpy?1.11.2+mkl?cp35?cp35m?win_amd64.whl
Run Code Online (Sandbox Code Playgroud)

安装这些包时,pip 会返回 version unmatch 错误。当我将 'cp35m' 更改为 'none' 时,它变得正常。

那么,'cp2xm' 'cp3xm' 是什么意思,为什么突然所有的包都用 'cpxxm' 替换了 'none'?

Ant*_*ile 5

PEP 3149 开始m指示pymalloc用作内存分配器

轮子名称的第二个组件是“abi​​”组件。这总是none在旧版本的轮子生产的轮子中,<26因为尚未实现 abi 检测。

在新版本的轮子中,填充了 abi。您需要足够新的 pip 版本才能安装这些轮子。