beetbox / audioread

cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for Python
MIT License
481 stars 108 forks source link

gi dependency breaks due to package namespace collision #55

Closed bmcfee closed 5 years ago

bmcfee commented 6 years ago

The gstreamer backend tries to import the gi package. This package appears to have some kind of a namespace collision on pypi, and will cause failures if https://pypi.python.org/pypi/gi is installed.

Specifically, before it can even fail due to missing API, it will crash on python3 because the gi.py module uses a print statement instead of a function call.

I'm not sure there's a good solution to this, since you can't use install-requires for optional dependencies here.

EDIT: reference librosa group thread here: https://groups.google.com/forum/#!topic/librosa/pKT3z2NYKIE

sampsyo commented 6 years ago

Quite true—this has come up before and it's a shame. There are a couple of main problems:

It used to be really tough to figure out which PyGObject version was the one that had gi. These days, however, they have good instructions for popular platforms.

bmcfee commented 6 years ago

Well, I found the author's email address. Maybe he'll be willing to rename the package.

lazka commented 6 years ago

The PyGObject library (which is called gi inside Python), as far as I know, is not on PyPI. It has to be installed from a platform package manager instead.

PyGObject is now on PyPI

Well, I found the author's email address. Maybe he'll be willing to rename the package.

I've tried this years ago, but got no response :/

sampsyo commented 6 years ago

So it is! Thanks for pointing that out. I'll update some docs.

arcresu commented 5 years ago

It looks like https://pypi.org/project/gi/ is now a 404 so the colliding package must have been removed from PyPi. I guess this can now be closed?

sampsyo commented 5 years ago

Wonderful! Sounds good.

lazka commented 5 years ago

Thanks, I've taken over the "gi" package for now to prevent this from happening again.