giotto-ai / giotto-tda

A high-performance topological machine learning toolbox in Python
https://giotto-ai.github.io/gtda-docs
Other
858 stars 175 forks source link

[BUG] Installation error on Windows 10 (user) #418

Closed charliecb closed 4 years ago

charliecb commented 4 years ago

Describe the bug During pip install giotto-tda, dependency on pycairo error thrown.

To reproduce Install Python 3.8.3 on Windows 10, and run pip install giotto-tda.

Expected behavior I expect giotto-tda to install pycairo automatically.

Actual behaviour After running pip install giotto-tda, I have the following:

ERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI. giotto-tda depends on pycairo@ https://storage.googleapis.com/l2f-open-models/giotto-learn/windows-binaries/pycairo/pycairo-1.18.2-cp38-cp38-win_amd64.whl

Versions Windows-10-10.0.18362-SP0 Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] NumPy 1.18.5 SciPy 1.4.1 Joblib 0.15.1 Scikit-learn 0.23.1

Additional context I have tried manually installing pycairo binaries, but the pycairo binary which the error message above links to is not supported on my platform: ERROR: pycairo-1.18.2-cp38-cp38-win_amd64.whl is not a supported wheel on this platform.

ulupo commented 4 years ago

@charliecb your error couldn't have been produced by the version currently hosted on PyPI. The link https://storage.googleapis.com/l2f-open-models/giotto-learn/windows-binaries/pycairo/pycairo-1.18.2-cp38-cp38-win_amd64.whl no longer exists in the codebase (it was removed a few versions back) – I've even double-checked by examing the correct Windows wheel for Python 3.8, which is https://files.pythonhosted.org/packages/0b/7a/1ff328d9cf2aed3733d6e47f48b3388e07fa260bd6a855106535da3e1620/giotto_tda-0.2.2-cp38-cp38-win_amd64.whl.

It looks like you're not installing the latest version of giotto-tda from PyPI from some reason. Maybe you cloned an old version of the repository and are accidentally installing giotto-tda from there? Try running:

pip install https://files.pythonhosted.org/packages/0b/7a/1ff328d9cf2aed3733d6e47f48b3388e07fa260bd6a855106535da3e1620/giotto_tda-0.2.2-cp38-cp38-win_amd64.whl

instead, or run pip install giotto-tda again after cding to an empty directory.

ulupo commented 4 years ago

@charliecb did you have any luck with the approach suggested above?

ulupo commented 4 years ago

HI @charliecb, I'm closing the issue due to inactivity. Please let us know if you are still experiencing difficulties.

Zfixnoma commented 11 months ago

Hi @ulupo , I have encountered a similar error: ERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI. giotto-tda depends on pycairo@ https://storage.googleapis.com/l2f-open-models/giotto-learn/windows-binaries/pycairo/pycairo-1.18.2-cp312-cp312m-win_amd64.whl

However, your link that you suggested to try instead doesn't work either (probably outdated): ERROR: giotto_tda-0.2.2-cp38-cp38-win_amd64.whl is not a supported wheel on this platform.

I don't quite get what you mean by

or run pip install giotto-tda again after cding to an empty directory.

For context, those are my installed versions: Windows-10-10.0.19045-SP0 Python 3.12.0 (tags/v3.12.0:0fb18b0, Oct 2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)] NumPy 1.26.2 SciPy 1.11.4 Joblib 1.3.2 Scikit-learn 1.3.2

Any help is appreciated!

Alyssonx commented 7 months ago

https://github.com/giotto-ai/giotto-tda/issues/418#issuecomment-1849820934

I'm getting the same error

I'm a new python user. I appreciate any help.

In Jupyter: pip install -U giotto-tda

Collecting giotto-tda Using cached giotto-tda-0.1.4.tar.gz (99 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Note: you may need to restart the kernel to use updated packages. ERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI. giotto-tda depends on pycairo@ https://storage.googleapis.com/l2f-open-models/giotto-learn/windows-binaries/pycairo/pycairo-1.18.2-cp311-cp311m-win_amd64.whl

Python 3.12.2 NumPy 1.26.4 SciPy 1.12.0 Joblib 1.3.2 Scikit-learn 1.4.1.post1

j-nog commented 7 months ago

I have also got the same error:

ERROR: Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI. giotto-tda depends on pycairo@ https://storage.googleapis.com/l2f-open-models/giotto-learn/windows-binaries/pycairo/pycairo-1.18.2-cp311-cp311m-win_amd64.whl

NeilStrickland commented 1 week ago

I am also seeing this error, with a freshly installed Python 3.13. This is on a laptop owned by one of my students, so I do not have direct access to it. I have very little knowledge of Python packaging, but as far as I now understand it, the situation is as follows.


- I am not sure where these lines are coming from.  There is no reference to pycairo in the setup.py file at https://github.com/giotto-ai/giotto-tda, or in any of the other files in that repository.  As far as I understand it, pycairo is not actually required in order to use giotto-tda.

While I understand that there will be a delay in preparing wheels for new versions of Python, it is frustrating to see such an opaque error message; I hope that it will be possible to tweak the installation process to avoid it.