Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does version name 'cp27' or 'cp35' mean in Python?

What does version name 'cp27' or 'cp35' mean in Python?

Like the files in https://pypi.python.org/pypi/gensim#downloads

enter image description here

I am using Python 2.7 on a 64-bit Window 7 PC, and don't know which version of python package I should install.

There are three questions:

  1. Which of "gensim-0.12.4-cp27-none-win_amd64.whl" or "gensim-0.12.4.win-amd64-py2.7.exe" should I install? I have installed 'WinPython-64bit-2.7.10.3' on 64-bit Window 7 PC which I am using.

  2. What does 'cp27' mean in Python or Python version name? I searched online with keywords 'Python cp27' but failed to find any answers.

  3. Are there differences between these two versions of python packages? ('0.12.4-cp27-none-win_amd64' and 'win-amd64-py2.7') If there are, what are the differences?

like image 775
Tom Avatar asked May 04 '16 09:05

Tom


People also ask

What does Python version cp36 mean?

cp36 means the wheel knows it works on CPython 3.6. It's up to CPython 3.9 (or the installer, on the implementation's behalf), to say whether it can still run cp36 wheels.

What does CP stand for in Python?

When it comes to using Python to copy files, there are two main ways: using the shutil module or the os module. All of the os methods we show here are methods that allow us to execute shell commands from our Python code, which we'll use to execute the copy command (Windows) or the cp command (Unix).

What is Python Pip wheel?

If you've installed a Python package using pip , then chances are that a wheel has made the installation faster and more efficient. Wheels are a component of the Python ecosystem that helps to make package installs just work. They allow for faster installations and more stability in the package distribution process.


2 Answers

If you check out the Python Enhancement Proposal (more commonly known as a PEP), you'll see that the cpN refers to the particular version of Python

in gensim-0.12.4-cp27-none-win_amd64.whl you can break it apart:

  • 0.12.4 - package version, they may be using semantic versioning
  • cp27 - this package is for CPython. IronPython, Jython, or PyPy will probably be unhappy.
  • none - no feature of this package depends on the python Application Binary Interface, or ABI
  • win_amd64 - this has been compiled for 64-bit Windows. That means that it probably has some code written in C/C++
  • .whl - that means this is a wheel distribution. Which is handy, because it means if you're running CPython 2.7 64-bit on Windows, and assuming you have pip installed, all you have to do to get this package is run: py -2.7 -m pip install --use-wheel gensim (assuming that it's available on pypi, of course). You may need to py -2.7 -m pip install wheel first. But other than that, that should be all it takes.
like image 113
Wayne Werner Avatar answered Oct 02 '22 20:10

Wayne Werner


These stand for the version of CPython (i.e. the Python official distribution you get from python.org) which the wheel files are built for.

For example cp27 is meant to be used on a CPython version 2.7.

Warning: cp32 is meant to be used in a CPython version 3.2. The difference between the 32 bits version and the 64 bits version is stated in another suffix, e.g. win32 or amd64 in the filename.

like image 31
Didier Trosset Avatar answered Oct 02 '22 22:10

Didier Trosset