|
1 | 1 | # python-manylinux-demo
|
2 | 2 | Demo project for building Python wheels for Linux with Travis-CI
|
3 | 3 |
|
4 |
| -[](https://travis-ci.org/manylinux/python-manylinux-demo) |
| 4 | +[](https://travis-ci.org/manylinux/python-manylinux-demo) |
| 5 | + |
| 6 | + |
| 7 | +This is an example of how to use Travis-CI to build |
| 8 | +[PEP 513](https://www.python.org/dev/peps/pep-0513/)-compatible manylinux1 |
| 9 | +wheels for Python. It supports both Python 2 and 3 on 32 and 64 bit linux |
| 10 | +architectures. |
| 11 | + |
| 12 | +Because these wheels need to be compiled on CentOS 5, this example uses Docker |
| 13 | +running on Travis-CI to compile (you don't need to use docker at all to _use_ |
| 14 | +these wheels, it's just to compile them). The docker-based build environment |
| 15 | +images are: |
| 16 | + |
| 17 | + - quay.io/pypa/manylinux1_x86_64 |
| 18 | + - quay.io/pypa/manylinux1_i686 |
| 19 | + |
| 20 | + |
| 21 | +This sample project contains a very simple C compile extension module that links |
| 22 | +to an external library (ATLAS, a linear algebra library). The build is |
| 23 | +configured via the `setup.py` file. |
| 24 | + |
| 25 | +## Continuous integration setup with Travis + Docker |
| 26 | + |
| 27 | +The `.travis.yml` file in this repository sets up the build environment. The |
| 28 | +resulting build logs can be found at |
| 29 | + |
| 30 | + https://travis-ci.org/manylinux/python-manylinux-demo |
| 31 | + |
| 32 | +The `.travis.yml` file instructs Travis to run the script |
| 33 | +`travis/build-wheels.sh` inside of the 32-bit and 64-bit manylinux1 docker |
| 34 | +build environments. This script builds the package using `pip`. But these |
| 35 | +wheels link against an external library. So to create self-contained libraries, |
| 36 | +the build script runs the wheels through |
| 37 | +[`auditwheel`](https://pypi.python.org/pypi/auditwheel). |
0 commit comments