开源软件名称(OpenSource Name):pypa/manylinux开源软件地址(OpenSource Url):https://github.com/pypa/manylinux开源编程语言(OpenSource Language):Shell 68.4%开源软件介绍(OpenSource Introduction):manylinuxEmail: wheel-builders@python.org Archives: https://mail.python.org/mailman/listinfo/wheel-builders Older archives: https://groups.google.com/forum/#!forum/manylinux-discuss The goal of the manylinux project is to provide a convenient way to distribute binary Python extensions as wheels on Linux. This effort has produced PEP 513 (manylinux1), PEP 571 (manylinux2010), PEP 599 (manylinux2014) and PEP 600 (manylinux_x_y). PEP 513 defined PEP 571 defined PEP 599 defines the following platform tags:
Wheels are built on CentOS 7 which will reach End of Life (EOL) on June 30th, 2024. PEP 600 has been designed to be "future-proof" and does not enforce specific symbols and a specific distro to build.
It only states that a wheel tagged
Wheel packages compliant with those tags can be uploaded to PyPI (for instance with twine) and can be installed with pip:
The various manylinux tags allow projects to distribute wheels that are automatically installed (and work!) on the vast majority of desktop and server Linux distributions. This repository hosts several manylinux-related things: Docker imagesBuilding manylinux-compatible wheels is not trivial; as a general rule, binaries built on one Linux distro will only work on other Linux distros that are the same age or newer. Therefore, if we want to make binaries that run on most Linux distros, we have to use an old enough distro. Rather than forcing you to install an old distro yourself, install Python, etc., we provide Docker images where we've done the work for you. The images are uploaded to quay.io and are tagged for repeatable builds. manylinux_2_28 (AlmaLinux 8 based)Toolchain: GCC 11
manylinux2014 (CentOS 7 based)Toolchain: GCC 10
manylinux_2_24 (Debian 9 based)These images have some caveats mentioned in different issues. Deprecation for these images is being discussed. Toolchain: GCC 6
manylinux2010 (CentOS 6 based - EOL)Support for Toolchain: GCC 8
manylinux1 (CentOS 5 based - EOL)Code and details regarding Support for Toolchain: GCC 4.8
All images are rebuilt using GitHub Actions / Travis-CI on every commit to this repository; see the docker/ directory for source code. Image contentAll images currently contain:
Note that less common or virtually unheard of flag combinations
(such as Note that starting with CPython 3.8,
default Note that PyPy is not available on ppc64le & s390x. Building Docker imagesTo build the Docker images, please run the following command from the current (root) directory: $ PLATFORM=$(uname -m) POLICY=manylinux2014 COMMIT_SHA=latest ./build.sh Please note that the Docker build is using buildx. Updating the requirementsThe requirement files are pinned and controlled by pip-tools compile. To update the pins, run nox on a Linux system with all supported versions of Python included. For example, using a docker image: $ docker run --rm -v $PWD:/nox -t quay.io/pypa/manylinux2010_x86_64:latest pipx run nox -f /nox/noxfile.py -s update_python_dependencies update_python_tools Updating the native dependenciesNative dependencies are all pinned in the Dockerfile. To update the pins, run the dedicated nox session. This will add a commit for each update. If you only want to see what would be updated, you can do a dry run: $ nox -s update_native_dependencies [-- --dry-run] ExampleAn example project which builds x86_64 wheels for each Python interpreter
version can be found here: https://github.com/pypa/python-manylinux-demo. The
repository also contains demo to build i686 and x86_64 wheels with This demonstrates how to use these docker images in conjunction with auditwheel to build manylinux-compatible wheels using the free travis ci continuous integration service. (NB: for the i686 images running on a x86_64 host machine, it's necessary to run everything under the command line program linux32, which changes reported architecture in new program environment. See this example invocation) The PEP itselfThe official version of PEP 513 is stored in the PEP repository, but we also have our own copy here. This is where the PEP was originally written, so if for some reason you really want to see the full history of edits it went through, then this is the place to look. The proposal to upgrade The proposal to upgrade The proposal for a "future-proof" This repo also has some analysis code that was used when putting
together the original proposal in the If you want to read the full discussion that led to the original policy, then lots of that is here: https://groups.google.com/forum/#!forum/manylinux-discuss The distutils-sig archives for January 2016 also contain several threads. Code of ConductEveryone interacting in the manylinux project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PSF Code of Conduct. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论