• Stars
    star
    222
  • Rank 179,123 (Top 4 %)
  • Language
    C
  • License
    Creative Commons ...
  • Created almost 9 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Demo project for building Python wheels for Linux with Travis-CI

python-manylinux-demo

Demo project for building Python wheels for Linux with Travis-CI

Build Status

This is an example of how to use Travis-CI to build PEP 513-compatible wheels for Python. It supports

  • manylinux1 for both Python 2 and 3 on 32 and 64 bit linux architectures.
  • manylinux2010 for Python 2 and 3 on 64 bit linux architectures.

Because these wheels need to be compiled with a specific toolchain and support libraries , this example uses Docker running on Travis-CI to compile (you don't need to use docker at all to use these wheels, it's just to compile them). The docker-based build environment images are:

  • 64-bit image for manylinux1 (x86-64): quay.io/pypa/manylinux1_x86_64 Docker Repository on Quay
  • 32-bit image for manylinux1 (i686): quay.io/pypa/manylinux1_i686 Docker Repository on Quay
  • 64-bit image for manylinux2010 (x86-64): quay.io/pypa/manylinux2010_x86_64 Docker Repository on Quay

This sample project contains a very simple C compile extension module that links to an external library (ATLAS, a linear algebra library). The build is configured via the setup.py file.

Continuous integration setup with Travis + Docker

The .travis.yml file in this repository sets up the build environment. The resulting build logs can be found at

https://travis-ci.org/pypa/python-manylinux-demo

The .travis.yml file instructs Travis to run the script travis/build-wheels.sh inside of the various docker build environments. This script builds the package using pip. But these wheels link against an external library. So to create self-contained wheels, the build script runs the wheels through auditwheel, which copies the external library into the wheel itself, so that users won't need to install any extra non-PyPI dependencies.

Code of Conduct

Everyone interacting in the python-manylinux-demo project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PSF Code of Conduct.

License

CC0
To the extent possible under law, Robert T. McGibbon has waived all copyright and related or neighboring rights to python-manylinux-demo. This work is published from: United States of America.

More Repositories

1

pipenv

Python Development Workflow for Humans.
Python
24,785
star
2

pipx

Install and Run Python Applications in Isolated Environments
Python
9,971
star
3

pip

The Python package installer
Python
9,448
star
4

hatch

Modern, extensible Python project management
Python
5,754
star
5

sampleproject

A sample project that exists for PyPUG's "Tutorial on Packaging and Distributing Projects"
Python
5,054
star
6

virtualenv

Virtual Python Environment builder
Python
4,770
star
7

pipfile

Python
3,232
star
8

setuptools

Official project repository for the Setuptools build system
Python
2,413
star
9

flit

Simplified packaging of Python modules
Python
2,143
star
10

cibuildwheel

🎑 Build Python wheels for all the platforms with minimal configuration.
Python
1,796
star
11

twine

Utilities for interacting with PyPI
Python
1,568
star
12

manylinux

Python wheels that work on any linux (almost)
Shell
1,410
star
13

packaging.python.org

Python Packaging User Guide
Python
1,394
star
14

pip-audit

Audits Python environments, requirements files and dependency trees for known security vulnerabilities, and can automatically fix them
Python
951
star
15

gh-action-pypi-publish

The blessed :octocat: GitHub Action, for publishing your πŸ“¦ distribution files to PyPI: https://github.com/marketplace/actions/pypi-publish
Python
878
star
16

setuptools_scm

the blessed package to manage your versions by scm tags
Python
839
star
17

get-pip

Helper scripts to install pip, in a Python installation that doesn't have it.
Python
723
star
18

build

A simple, correct Python build frontend
Python
710
star
19

packaging

Core utilities for Python packages
Python
602
star
20

wheel

The official binary distribution format for Python
Python
494
star
21

bandersnatch

A PyPI mirror client according to PEP 381 http://www.python.org/dev/peps/pep-0381/
Python
439
star
22

auditwheel

Auditing and relabeling cross-distribution Linux wheels.
Python
425
star
23

advisory-database

Advisory database for Python packages published on pypi.org
250
star
24

sample-namespace-packages

Tests against namespace packages
Python
175
star
25

readme_renderer

Safely render long_description/README files in Warehouse
Python
158
star
26

packaging-problems

An issue tracker for the problems in packaging
143
star
27

trove-classifiers

Canonical source for classifiers on PyPI.
Python
134
star
28

pyproject-hooks

A low-level library for calling build-backends in `pyproject.toml`-based project
Python
120
star
29

installer

A low-level library for installing from a Python wheel distribution.
Python
118
star
30

gh-action-pip-audit

A GitHub Action for pip-audit
Python
66
star
31

scripttest

Utilities to help with testing command line scripts
Python
60
star
32

distlib

A low-level library which implements some Python packaging standards (PEPs) and which could be used by third-party packaging tools to achieve interoperability.
Python
48
star
33

distutils

distutils as found in cpython
Python
44
star
34

.github

Community health files for the Python Packaging Authority
34
star
35

pyproject-metadata

PEP 621 metadata parsing
Python
30
star
36

pypa.io

Source code for the pypa.io website
Python
24
star
37

interoperability-peps

Development repo for evolution of PyPA interoperability standards (released versions are published as PEPs on python.org)
Python
22
star
38

integration-test

ensure core packaging tools work well with each other
17
star
39

pkg_resources

Abandoned extraction of pkg_resources. Official version found at /pypa/setuptools.
Python
16
star
40

get-virtualenv

13
star
41

history

history generates history/changelog files for a project
Python
7
star
42

easy_install

Python
7
star
43

wheel-builders

Companion repo for the [email protected] mailing list
7
star
44

browntruck

Python
6
star
45

pypa-docs-theme

Common base Sphinx theme for PyPA projects
Python
6
star
46

docker-python

5
star
47

copr

Package files for building PyPA packages in copr
4
star
48

pypa-bot

Source code behind @pypa-bot (eventually)
4
star
49

pep470

Python
4
star
50

pip-test-package

Used in pip's test suite
Python
4
star
51

bootstrap

Assets for bootstrap.pypa.io
Dockerfile
4
star
52

pypi-camo

Dockerfile
3
star
53

bot-test

1
star
54

rootbeer

Bootstrapping Python build backends for source-only environments.
1
star