Repackage python-flint to include arb and flint as shared libraries
Project description
flint-py
This is a repackaged version of python-flint by Fredrik Johansson. The original package requires that the user first installs Flint and Arb, which in turn require gmp
and mpfr
to be installed as well. This sometimes is problematic because not every distribution has suitable packages of these libraries.
The alternative is to prebuilt different versions of the required libraries and to ship them with the python package. This repository achieves exactly that goal by leveraging PEP 513 and the manylinux project.
So, if you were planning to depend on python-flint
and build the required dependencies by hand, you could try flint-py
instead and see if it just works.
How to build wheels?
For the future maintainers of flint-py
, here is a rough outline of the wheel build procedure:
-
Select the desired versions of the
mpir
,mpfr
,flint
andarb
libraries in theext
directory. Note thatmpir
,mpfr
andflint
are submodules, so you could check out any commit or tag that you might like. As for thempfr
library, please download a release and manually commit it into git here. -
Build the docker image and run it as a container:
cd flint-py docker build --tag flint-py docker run flint-py:latest
-
Find out the id of the container and copy the wheels out of it:
docker container ls -a #find the correct id docker cp <container_id>:/flint-py/wheelhouse ./wheelhouse
-
At this point, the
./wheelhouse
directory on your local filesystem should contain the wheels you need, e.g.ls ./wheelhouse flint_py-0.3.4-cp27-cp27mu-manylinux1_x86_64.whl flint_py-0.3.4-cp35-cp35m-manylinux1_x86_64.whl flint_py-0.3.4-cp27-cp27m-manylinux1_x86_64.whl flint_py-0.3.4-cp36-cp36m-manylinux1_x86_64.whl flint_py-0.3.4-cp34-cp34m-manylinux1_x86_64.whl flint_py-0.3.4-cp37-cp37m-manylinux1_x86_64.whl
-
Upload the wheels to
pypi
:twine upload ./wheelhouse/*
Common pitfalls
-
If you are trying to debug the compilation of C libraries under
ext
, please keep in mind that when you switch to docker builds, your build artifacts from the local filesystem will be copied into the image. This could break the docker build in unexpected ways. To avoid that, you could either carefully remove the artifacts before running docker or you could conduct local builds in a copy of the project. -
Cython extensions are not automatically rebuilt, which causes some problems for Python2.7. Currently, the
build_wheels.sh
script removes the extension artifacts each time before cython is asked to rebuild them in docker. -
If you are running Arch Linux and your docker container seems to crash with error code 139 for any command that you run, enable
vsyscall=emulate
for your kernel. See https://wiki.archlinux.org/index.php/Docker#Installation
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for flint_py-0.3.7-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ddb5eafd7f6778d85bd8f9247545a6188e3a16969026c0055db187dc91b6503 |
|
MD5 | 80d3a41604c1bdf14fed117ad500645e |
|
BLAKE2b-256 | 1a69cd3f39037fdfabf4e32b61caed23c6f7641ffaa59249bbc16cc7acae5129 |
Hashes for flint_py-0.3.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b20d1fc387aa8c3a36f75ede2af2e8b67c0d9ff38b9217ea8b46cf604e90b55a |
|
MD5 | 2c8c810edd94302f78048dbba449b45b |
|
BLAKE2b-256 | d3f4f4dfdc3b37b1fc6343f6eaa3a1d631547d21d6736ed10cd7fb270a3939a2 |
Hashes for flint_py-0.3.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9bcf807d4382a7d19b1144d8813c337326fe23cfed0d18d153f34f83a9057b3 |
|
MD5 | 4b52e5251d23130aa0dba4510d618785 |
|
BLAKE2b-256 | 4d03d94462502d249ee445c3f3dec300b8e61d7f17fb4ef08b44fa7234a0c6d8 |
Hashes for flint_py-0.3.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aeb7700e05958a9b04c4bfb654682d509e55aabc43695340af1a6c67394f4a8b |
|
MD5 | 39d38390e89951e1ff500207de79fcc3 |
|
BLAKE2b-256 | 743679c81c8763cdee87c1be6cf32e0e363fc980f928058f80c46a2cf86fa688 |
Hashes for flint_py-0.3.7-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d6fdfd158d00674eea846a4cde07b4ec56d6f9b6b2cddf8056b636125c2184f |
|
MD5 | 02dd3d9b84f69e92bc4d618cd889bedf |
|
BLAKE2b-256 | 311d7968535af0c509079beed675b2f6bc2c3aea7c94c01878fbe08d818cbaee |
Hashes for flint_py-0.3.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 384a2ceab0106cd69751ba62483c1f109b067ea251bf84a9f3ba7d7c2741b1b0 |
|
MD5 | 310d9158fdc47688125270308f1f202a |
|
BLAKE2b-256 | 3aa9db9f1f25493fdfcd1c2aa96d703b6f2dd879756e51b334842d0ccf1f5f36 |
Hashes for flint_py-0.3.7-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9837f01f39215ac8751b2bfe1e55f26002860ffdf79e731933fd7a58e97b4ff |
|
MD5 | b07189bff7885d79bf49eeb586b8274d |
|
BLAKE2b-256 | e0733fd183326f40bd7ded058c585d56d19800b2a192ebca2abfe06abe0c5f42 |
Hashes for flint_py-0.3.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5680d8f5cb4c03535bdadf1d67a6a22077904365fe16097a97c8b2c5a21d3b68 |
|
MD5 | bbcfe88c51317e3c42c8cb372dc19424 |
|
BLAKE2b-256 | d930ff5faf03714cea609b6c2dea98c8d3120069b78192df718b52168103e63e |
Hashes for flint_py-0.3.7-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abd3b02b1b28ef543d657be16400ea8e5bd79aa95c4a9db72b13a84fe35bb72e |
|
MD5 | 4c09790ad98a6d08a0e40e1cb4ce84c5 |
|
BLAKE2b-256 | 3115ae9be2c70cf62a80d3d35b008820b69477e24752ada239c006f780ae077e |
Hashes for flint_py-0.3.7-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bae672b46e32ed897f25dc6498fea9ed82d5f5b62b3690120eda7dc84986e805 |
|
MD5 | 96e8c3502be7414ffeeaa8d9f142768b |
|
BLAKE2b-256 | e6cef04bcc8b09083454f825e2d03e0464caa45cc7ed46df55df94551a43e2a0 |
Hashes for flint_py-0.3.7-cp34-cp34m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f867ea5b8e0163be72a9c0bca8b51fe24ca668aaf01b5ad30575fcb9f27c1987 |
|
MD5 | 988a7ef6de0a98256ac64eeea066d7bf |
|
BLAKE2b-256 | 8153a3e3883c9c0731c6a3cf774354b473f3db72193b785703ad65c924b4352a |
Hashes for flint_py-0.3.7-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 285eebb4a76f897fea28868ee5a865d9c80a04f9490162d5a9d81b6f7bc975fd |
|
MD5 | c9cced7881628a7fbdfa95f1df499d2e |
|
BLAKE2b-256 | a90a890257bf869d34e922b1e8adc79bd3ddd3fc5309336cfc023d2a68957c56 |
Hashes for flint_py-0.3.7-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdf867e0d47e201175cc25afe339241c56906ec642d2ff373a0958b9cb005b7f |
|
MD5 | 501e7fa34c17164b7bba4ad780588e3d |
|
BLAKE2b-256 | 048ccb45aa44708beebf1a843340c8d4a283c6ce3c96c6a1575d23e32c65662a |