Skip to content

Provide binary wheels on PyPI #7

@tabbyrobin

Description

@tabbyrobin

It would be nice if binary wheels were available on PyPI, so that the package can be installed without needing a C compiler available.

I have created a rough script that builds an array of wheels. It should build them bit-for-bit reproducibly. It uses cibuildwheel, python-stripzip, Docker and uv.

The script is available as a gist. I'm not convinced this script is ideal; but it is a working prototype.

On my setup, building all 42 wheels locally takes about 15 minutes for a fresh start. (~8 minutes if you have already downloaded all Docker images.)

When I build them, these are the checksums I get:

777a3cab8d36fd656421718d90848ef162ed1adb55151e865db2db3230e4e9a6  sha256-1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
e5a2b1d177c74b4215e9d4def208534c980b30f3d43eeb1a3a6179e1865ed744  sha256-1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
7e92aab66fbca5dcae0babacb15c9cbc948b361d5d99e510f251fb91cbaa8ff5  sha256-1.0-cp310-cp310-musllinux_1_2_i686.whl
3b00cec4b09e4c8c24470e98881bdadd3784b1dfd8a2570e12775b0d8d71240d  sha256-1.0-cp310-cp310-musllinux_1_2_x86_64.whl
de63579bdece8caba9e3301fb947ee5842576e71e716d8d987e0918717a91d15  sha256-1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
6219b99cb1a86cf342c8e2a6acb36d5ecb25aaac9c12f37e74af3a02790ee71d  sha256-1.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
732110156069014bcce73041166020010a10459b8bfc00b7c48d02f30219adae  sha256-1.0-cp311-cp311-musllinux_1_2_i686.whl
c558431a74d161b82af8f9384a2b92f4b6b8c9d9fdbdb16bb5c90c8d3e4bed8f  sha256-1.0-cp311-cp311-musllinux_1_2_x86_64.whl
6377bb40fce9ff52a78fbf18fc7d7887e3403a850a5ee69f7baba19875a94862  sha256-1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
992f9448ca62d2ae89379eedd55b5a5aa45241751f05aa30f72f49a3346d2e9a  sha256-1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0005f8ac0e7d24b5bf4d45bfa93974bde0e4e1ace21b8721f586d4a799de1486  sha256-1.0-cp312-cp312-musllinux_1_2_i686.whl
459229dc2705d46e4b8196d14a36306409e48711f7d593de5d94e41f1dc6609c  sha256-1.0-cp312-cp312-musllinux_1_2_x86_64.whl
f41db60c9966b94b5484ffb0453ede6e3213037cfee41dbe302f0ba853267152  sha256-1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
b2a7e397d7b783f125b4740e9f086d8402910fcc49188ee38a19400cd610ccfe  sha256-1.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
0d0bf5ac287779ae662fb3abed1ffdb79376f0e2986a1ca304edfdd1441e2e16  sha256-1.0-cp313-cp313-musllinux_1_2_i686.whl
64333c70e58ecc870bcb3d81eb3784c650e5cdf6dc97c975a282934e3d014607  sha256-1.0-cp313-cp313-musllinux_1_2_x86_64.whl
5dc8e98b7fd452508493c8c34e6d1b20776a2d0aa070c7180a1cd66e1f4b4e54  sha256-1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
455f5cabcad6ec5ccb8726b4e3e10cf9ba42d44e682a25dc5e8d1ca1736194ae  sha256-1.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
315f61c5184e83c47998f8688730cccfd2f1c2b2d06e3f148a5422c06dc8cfaf  sha256-1.0-cp36-cp36m-musllinux_1_2_i686.whl
d84ccb33d381641e9536d16794a5b5abc0796aee6e89f35b55c7969a6d19da40  sha256-1.0-cp36-cp36m-musllinux_1_2_x86_64.whl
7c0fcca0e4a829ca4c53533cdcce646e5c71039a56ee5fd79334a3628ff4be16  sha256-1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
69b6aa5e3ec36eee13ac754b677f5f3c6b68bac4121c3a4797e309970804031b  sha256-1.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
9e77e3179008ed3c92a3c11efa4f9296a52ae9afedccfe1fac683274ebeafa7a  sha256-1.0-cp37-cp37m-musllinux_1_2_i686.whl
03acb82a62031277a247e9a2685312e6da5a0c43a1324baf0c3115c7b4b2b469  sha256-1.0-cp37-cp37m-musllinux_1_2_x86_64.whl
7fd3aa67f6028b088aa69a878fd47f4cdb67887676618e5f1b25d437229460f2  sha256-1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
4d3676713f2add393a3acd4230d867dc0827120b46beeb14cd170a3104c35532  sha256-1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
4b6c1e8c6b4d9ebbf62e0743ba7b0afaf94147d6e70b31974ce6164e9904b804  sha256-1.0-cp38-cp38-musllinux_1_2_i686.whl
115510ff98aeab12a3cf747b56146af09e540ee5b41bd0c8e763415eec8ffbf7  sha256-1.0-cp38-cp38-musllinux_1_2_x86_64.whl
6a5b2413103168af884412b865ca3234f9fb27980a51671a2c39b579c45f8b64  sha256-1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
eee86fac9af8a9aee5d136f43870294aed01ae2df2eac02c390c6776fdb15d56  sha256-1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
200582e57c5f700e6b6811ad79f879e331736762c376c708bbe595b0f8d4dfb1  sha256-1.0-cp39-cp39-musllinux_1_2_i686.whl
a3927daf04f28814b156680ec4ed1bac290345b0d44745b309214a2bdb8b735d  sha256-1.0-cp39-cp39-musllinux_1_2_x86_64.whl
43c57e3623282edf9b59a1a7400b1928785f9c7bd5b1faf7d4b799054faefcdc  sha256-1.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
23a2877bf98fed55a3e29164652b2be34a04e071e8a6fb5cae306aceaf7215a2  sha256-1.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
cdc4ca8e1fa2b2f25939f74c50456f799490219098b5106a8b121ebe420b55a4  sha256-1.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
4d7e89b4d40b007989ff370bd4eca3b257cd3c4bc2007d116f1fcf6191489d75  sha256-1.0-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
b2e9da4cb071a3d1a8f4519b93b94d3c43f733a450a8686008bbfd8c1bb1f6ea  sha256-1.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
e467c3b6c002e43c3159bd47333ad37105aaea78b2a868ebe511843b270b4eea  sha256-1.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
287e781aea0c2a7f4c973a6666081e53d46b90a74f4a0a83695305d8be26df67  sha256-1.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
4f6c57495fbc028d777c413c5d35b010525c1edca4c3e9c4ecc2f8c62ffb4c48  sha256-1.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
2850028db817e596f0b9eed3ad1b6315946661d41c86a4c5e53a86ba0e4d4e7d  sha256-1.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
b6fe5ac6c98577e9d201daceec4a0d72044f9e10ba210e18cdf27f6221109e8d  sha256-1.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions