Open danielemichilli opened 2 years ago
@danielemichilli @jrs65 -- looking into this issue and here are some observations.
pyproject.toml
-- it is set up with sufficient parameters.setup.py
itself. You can replicate this issue by simply following the commands below:
cd bitshuffle
docker run -it -v $(pwd):/bitshuffle python:3.7-slim python /bitshuffle/setup.py --help
Traceback (most recent call last):
File "/bitshuffle/setup.py", line 13, in <module>
from Cython.Compiler.Main import default_options
ModuleNotFoundError: No module named 'Cython'
You need Cython
installed in the environment to even evaluate the install and setup directives. This breaks any setup command other than install
.
As a result, you cannot currently install bitshuffle
locally, and even python setup.py install
will fail.
Most third-party dependency resolution systems, pipx, poetry, flit etc.
use egg_info
to fetch metadata, build tags and dependency links for the project. Note, this is outside the purview and different from install_requires
and setup_requires
dependencies which are correctly defined in pyproject.toml
.
I bandaid fix for this issue, is in #123
The content of pyproject.toml is incompatible with poetry and makes the installation fall back on using setup.py. This also fails as Cython is not installed in the environment by poetry before running the setup.
For example, running in another module
poetry add /path/to/v0.4.2/bitshuffle
causes the error