Skip to main content

A tool that makes building tons of Python manylinux wheels quick and easy.

Project description

Gyre

A tool that makes building tons of Python manylinux wheels quick and easy.

jī(-ə)r (noun)

  • a ring or circle.
  • a circular course or motion.
  • a ringlike system of rotating ocean currents

Installation

python -m pip install gyre

Usage

The Gyre CLI (gyre) takes an input directory or PyPI project to get a source to compile (defaults to the current directory) and an output directory (defaults to dist/) to store the wheels.

Try using gyre --help for all options.

Building Wheels for a Local Project

$ gyre -i ~/kiwisolver
...

$ ls -Al dist/

Building Wheels for a Package on PyPI

Let's say you released a version of your package on PyPI and now that a new Python version is out you don't want to check out the tag and rebuild a new wheel. Don't need to do that anymore!

$ gyre -i kiwisolver==1.1.0

Note this only works if you have an sdist for that package version uploaded to PyPI.

Specifying manylinux Version(s)

By default Gyre creates only manylinux1 builds. Possible values are 1, 2010, and 2014 comma-separated.

$ gyre -i ~/kiwisolver --manylinux=1,2010

Specifying Python version(s)

By default Gyre creates wheels for all Python versions 2.7 to the latest released version.

$ gyre -i ~/kiwisolver --python-versions=3.6,3.7,3.8

Installing External Dependencies

Manylinux environments use CentOS as an operating system so yum is the package manager you must use to install external dependencies.

$ gyre -i scipy==1.3.3 --yum=openblas-devel,lapack-devel

Using Environment Variables

You can specify any number of environment variables via multiple uses of -e.

gyre -e NPY_BLAS_ORDER=openblas -i ~/numpy

Using a Custom Build/Wheel Command

You can specify a custom wheel command if the standard pip wheel [X] doesn't work.

The two environment variables that are useful for building your own commands are $PYTHON and $PIP which point to the specific version of Python and Pip that you should use for that Python version.

You must also make sure that the wheels end up in $WHEEL_DIR.

gyre --wheel-command "$PYTHON setup.py bdist_wheel; cp dist/*.whl $WHEEL_DIR"

Using Gyre in Travis for Continuous Deployment

services:
  - docker

deploy:
  provider: script
  script:
    # Install dependencies
    - python -m pip install gyre twine

    # Build the sdist
    - python setup.py sdist

    # Build the wheels with Gyre
    - gyre --manylinux=2014

    # Upload all distributions
    - twine upload dist/* --username=${PYPI_USERNAME} --password=${PYPI_PASSWORD}
  on:
    branch: release

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for gyre, version 2019.11.24
Filename, size File type Python version Upload date Hashes
Filename, size gyre-2019.11.24-py3-none-any.whl (18.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size gyre-2019.11.24.tar.gz (8.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page