Docker image for building PyPy manylinux wheels.
This image extends the official manylinux image by installing PyPy. For now,
the only supported platform is x86_64.
At the moment of writing, this image provide the following versions of PyPy:
- PyPy2.7 7.3.3
- PyPy3.6 7.3.3
- PyPy3.7 7.3.3
- PyPy2.7 7.2.0
- PyPy3.6 7.2.0
pypy-manylinux-demo is an example project which demonstrate how to build CPython and PyPy wheels using Travis CI and this image. It is a fork of the official python-manylinux-demo, and shows that building wheels for PyPy is as easy as changing the image name!
The various PyPy versions are installed inside /opt/pypy/, and they are
also symlinked to /opt/python. Moreover, each installation of PyPy
contains also a python symlink.
All the following commands are equivalent and run the PyPy 2.7, version 7.3.3. You can use whatever fits best in your build system:
/opt/pypy/pypy2.7-7.3.3/bin/pypy/opt/pypy/pypy2.7-7.3.3/bin/python/opt/python/pp27-pypy_73/bin/pypy/opt/python/pp27-pypy_73/bin/python
Similarly, these are the commands to run PyPy 3.6, version 7.3.3:
/opt/pypy/pypy3.6-7.3.3/bin/pypy/opt/pypy/pypy3.6-7.3.3/bin/python/opt/python/pp36-pypy36_pp73/bin/pypy/opt/python/pp36-pypy36_pp73/bin/python
The paths for PyPy 3.7 are completely analogous to the ones for 3.6.
pp27-pypy_73 and pp36-pypy36_pp73 are the PEP 425 compliant
compatibility tag. In particular:
ppstands for PyPy (as opposed tocpwhich is CPython)27and36mean "Python 2.7|3.6"pypy_73andpypy36_pp73(or before PyPy 7.3.0,pypy_41andpypy3_71) are the binary ABI tags for the relevant version of PyPy. You can probably ignore them.
Before pip 20 and wheel 0.34, tags looked like pp273-pypy_73 or
pp373-pypy36_pp73, where 273 and 373 mean "Python [2|3]",
"PyPy 7.3.x". Pre-7.3.0 versions of PyPy do not support pip>=20, and thus
still rely on these old PyPy PEP 425 tags.