【问题标题】:What is the meaning of 'cp3xm' and 'cp2xm' in the name of Python wheels?Python轮子名称中的'cp3xm'和'cp2xm'是什么意思?
【发布时间】:2019-09-23 21:01:06
【问题描述】:

据我所知,python wheel的命名规则是

package_version-related_python_version-none-32bits_or_64bits.whl

例如,

numpy‑1.11.2+mkl‑cp35‑none‑win_amd64.whl

是 1.11.2 版本的 numpy,适用于在 windows 64 位平台上运行的 Python3.5。 Reference

目前我注意到Unofficial Windows Binaries for Python Extension Packages 中 Python 包的命名使用 'cpxxm' 替换 'none'。例如,

numpy‑1.11.2+mkl‑cp35‑cp35m‑win_amd64.whl

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

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

【问题讨论】:

  • m 表示具有不同内存管理器的版本。文档中的某处有信息。在 Linux 上,我已经自动安装了文件 python3python3m,所以我可以选择运行哪个版本。
  • @furas 如何在 Windows 中将 Python3 更改为 Python3m?
  • 用 Python 查看文件夹,也许你同时安装了 python3python3m 或类似 py3.exepy3m.exe 的文件。然后你必须使用py3m.exe script.py 来运行这个版本的脚本。我不使用 Windows,所以我无能为力。
  • 据说PyMalloc还没有在windows上实现。但是windows上有一些py3m的包。这真的让我很困惑。

标签: python pip python-wheel


【解决方案1】:

PEP 3149m 表示pymalloc 正在用作内存分配器

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

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

【讨论】:

    猜你喜欢
    • 2015-10-28
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 2010-09-29
    • 2017-08-24
    相关资源
    最近更新 更多