jaakkopasanen / AutoEq

Automatic headphone equalization from frequency responses
MIT License
12.9k stars 2.47k forks source link

AutoEq 2.2.0 does not install via pip on Python 3.11 #589

Closed SDX-LV closed 1 year ago

SDX-LV commented 1 year ago

Describe the bug Dependency mess-up when running pip install autoeq into Python 3.11.1 See the printouts:

...> pip install autoeq
Collecting autoeq
  Downloading autoeq-2.2.0-py3-none-any.whl (33 kB)
Collecting matplotlib~=3.5.2
  Downloading matplotlib-3.5.3.tar.gz (35.2 MB)
     ---------------------------------------- 35.2/35.2 MB 10.1 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting numpy~=1.23.1
  Downloading numpy-1.23.5-cp311-cp311-win_amd64.whl (14.6 MB)
     ---------------------------------------- 14.6/14.6 MB 6.1 MB/s eta 0:00:00
Collecting pandas~=1.4.3
  Downloading pandas-1.4.4.tar.gz (4.9 MB)
     ---------------------------------------- 4.9/4.9 MB 12.6 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting pillow~=9.2.0
  Downloading Pillow-9.2.0-cp311-cp311-win_amd64.whl (3.3 MB)
     ---------------------------------------- 3.3/3.3 MB 13.1 MB/s eta 0:00:00
Collecting pyyaml~=6.0
  Downloading PyYAML-6.0-cp311-cp311-win_amd64.whl (143 kB)
     ---------------------------------------- 143.2/143.2 kB 8.9 MB/s eta 0:00:00
Collecting autoeq
  Downloading autoeq-2.1.1-py3-none-any.whl (33 kB)
  Downloading autoeq-2.1.0-py3-none-any.whl (68 kB)
     ---------------------------------------- 68.2/68.2 kB 3.6 MB/s eta 0:00:00
  Downloading autoeq-2.0.0-py3-none-any.whl (65 kB)
     ---------------------------------------- 65.4/65.4 kB ? eta 0:00:00
ERROR: Cannot install autoeq==2.0.0, autoeq==2.1.0, autoeq==2.1.1 and autoeq==2.2.0 because these package versions have conflicting dependencies.

The conflict is caused by:
    autoeq 2.2.0 depends on scipy~=1.8.1
    autoeq 2.1.1 depends on scipy~=1.8.1
    autoeq 2.1.0 depends on scipy~=1.8.1
    autoeq 2.0.0 depends on scipy~=1.8.1

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

To Reproduce Just running pip install autoeq in clean Python 3.11.1 on Windows 10. Re-try did not help. I guess Python 3.11 is not supported by all dependencies ? :)

Ryzke1337 commented 1 year ago

For me, The workaround I found.

Do a clean reinstall of Python 3.10.9, Then do pip install scipy==1.8.1 first, and it'll automatically install it's dependencies. Then do pip install autoeq==2.2.0, it'll reinstall some dependancies to the version that autoeq supports And it's done.

Hope it works for you, I've installed it without any problem.

SDX-LV commented 1 year ago

Thanks for the tip. I tried your approach and then while reading error printouts realized that I incorrectly used pip and was actually always trying to install autoeq into Python3.11

 pip install scipy==1.8.1
ERROR: Ignored the following versions that require a different python version: 1.6.2 Requires-Python >=3.7,<3.10; 1.6.3 Requires-Python >=3.7,<3.10; 1.7.0 Requires-P
ython >=3.7,<3.10; 1.7.0rc1 Requires-Python >=3.7,<3.10; 1.7.0rc2 Requires-Python >=3.7,<3.10; 1.7.1 Requires-Python >=3.7,<3.10; 1.7.2 Requires-Python >=3.7,<3.11; 
1.7.3 Requires-Python >=3.7,<3.11; 1.8.0 Requires-Python >=3.8,<3.11; 1.8.0rc1 Requires-Python >=3.8,<3.11; 1.8.0rc2 Requires-Python >=3.8,<3.11; 1.8.0rc3 Requires-P
ython >=3.8,<3.11; 1.8.0rc4 Requires-Python >=3.8,<3.11; 1.8.1 Requires-Python >=3.8,<3.11
ERROR: Could not find a version that satisfies the requirement scipy==1.8.1 (from versions: 0.8.0, 0.9.0, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.12.1, 0.13.0, 0.13.1, 0.1
3.2, 0.13.3, 0.14.0, 0.14.1, 0.15.0, 0.15.1, 0.16.0, 0.16.1, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0, 0.19.1, 1.0.0, 1.0.1, 1.1.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.3.0, 
1.3.1, 1.3.2, 1.3.3, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.6.0, 1.6.1, 1.9.0rc1, 1.9.0rc2, 1.9.0rc3, 1.9.0, 1.9.1, 1.9.2, 1.9.3, 1.10.0rc1, 1.10.0rc2, 1
.10.0)
ERROR: No matching distribution found for scipy==1.8.1

So I expect there is no AutoEq issue with Python 3.10 at all. But there is a dependency version conflict with Python 3.11.1

So the fix could be either updating the dependencies or marking AutoEq as not compatible with 3.11 for now.

HonestJohn61 commented 1 year ago

Hi

I ran into the same issue, but I see the Python version required is reported as Python >=3.7,<3.10 - so neither 3.10 nor 3.11 will work with the documented instructions. @jaakkopasanen - perhaps the instructions could be altered so people like me don't fall into this trap! I think the version to point people to is 3.9.13, the latest version of 3.9 with a Windows installer available

Since this python stuff and virtual environments is gobblydegook to me, I had to do a bit of Googling to get out of the hole, and then I:

That's got me to the point where I could Verify the installation with 'python -m autoeq --help', so I think it's fine now. Looking forward to building some filers next when I have time.

huupoke12 commented 1 year ago

Try changing all ~= to >= in the dependencies section of the file pyproject.toml

jaakkopasanen commented 1 year ago

I've added the <3.10 in pyproject.toml. Thanks for reporting.