【问题标题】:What does version name 'cp27' or 'cp35' mean in Python?Python 中的版本名称“cp27”或“cp35”是什么意思?
【发布时间】:2016-08-29 15:29:09
【问题描述】:

版本名称“cp27”或“cp35”在 Python 中是什么意思?

喜欢https://pypi.python.org/pypi/gensim#downloads中的文件

我在 64 位 Window 7 PC 上使用 Python 2.7,但不知道我应该安装哪个版本的 python 包。

共有三个问题:

  1. gensim-0.12.4-cp27-none-win_amd64.whl”或“gensim-0.12.4.win-amd64-py2.7.exe ”我应该安装吗?我已经在我正在使用的 64 位 Window 7 PC 上安装了“WinPython-64bit-2.7.10.3”。

  2. Python 或 Python 版本名称中的“cp27”是什么意思?我用关键字“Python cp27”在线搜索,但没有找到任何答案。

  3. 这两个版本的python包有区别吗? ('0.12.4-cp27-none-win_amd64' 和 'win-amd64-py2.7') 如果有,有什么区别?

【问题讨论】:

  • 我一直在想同样的事情,但广义上的含义应该不难猜到——CPython 2.7 和 3.5 版本?
  • 预编译的可执行文件与wheel的打包方式不同,但内容基本相同。前者在独立安装中有意义,而后者对于例如发展。
  • 每个问题只能回答一个问题。
  • @tripleee 查看我对文档链接的回答 :)

标签: python python-2.7


【解决方案1】:

如果您查看 Python Enhancement Proposal(通常称为 PEP),您会发现 cpN 指的是特定版本的 Python

gensim-0.12.4-cp27-none-win_amd64.whl 你可以把它拆开:

  • 0.12.4 - 软件包版本,他们可能使用semantic versioning
  • cp27 - 这个包适用于 CPython。 IronPython、Jython 或 PyPy 可能会不高兴。
  • none - 这个包的任何特性都依赖于 python Application Binary Interface, or ABI
  • win_amd64 - 这是为 64 位 Windows 编译的。这意味着它可能有一些用 C/C++ 编写的代码
  • .whl - 这意味着这是一个轮子分布。这很方便,因为这意味着如果你在 Windows 上运行 CPython 2.7 64 位,并且假设你已经安装了 pip,那么你所要做的就是运行这个包:py -2.7 -m pip install --use-wheel gensim(假设它在 pypi 上可用,当然)。您可能需要先py -2.7 -m pip install wheel。但除此之外,这应该就是全部了。

【讨论】:

  • m 后缀是什么?即cp37m.
  • @TurtlesAreCute 它看起来像是 ABI 标签的一部分
  • @TurtlesAreCute --with-pymalloc(标志:m)
【解决方案2】:

这些代表 CPython 的版本(即您从 python.org 获得的 Python 官方发行版),轮子文件是为这些版本构建的。

例如,cp27 旨在用于 CPython 2.7 版。

警告:cp32 旨在用于 CPython 3.2 版。 32 位版本和 64 位版本之间的区别在另一个后缀中说明,例如win32amd64 在文件名中。

【讨论】:

    猜你喜欢
    • 2013-07-19
    • 2012-08-11
    • 1970-01-01
    • 2022-11-08
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    相关资源
    最近更新 更多