Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trouble with Numba using Python 3.12 #79

Closed
j3r3m1 opened this issue May 5, 2024 · 29 comments
Closed

Trouble with Numba using Python 3.12 #79

j3r3m1 opened this issue May 5, 2024 · 29 comments

Comments

@j3r3m1
Copy link
Collaborator

j3r3m1 commented May 5, 2024

          I'm having the same installation problem, and I've followed the same steps shown in this conversation, but I'm getting an error the last installation of the pip install umep-reqs

Originally posted by @Inspire71 in #24 (comment)

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 5, 2024

I think that Numba is not compatible yet with Python 3.12 (see numba/numba#9250 and numba/numba#9197). You better keep 3.11 for now.

I am not that good at using osgeo4W. @biglimp any idea how to select a specific Python version in osgeo4w ?

@Inspire71
Copy link

How do I downgrade the Python version to 3.11?.
Do I have to uninstall version 3.12 first and reinstall version 3.11? Can this affect dependencies with other libraries and programs?

@biglimp
Copy link
Contributor

biglimp commented May 6, 2024

I think that Numba is not compatible yet with Python 3.12 (see numba/numba#9250 and numba/numba#9197). You better keep 3.11 for now.

I am not that good at using osgeo4W. @biglimp any idea how to select a specific Python version in osgeo4w ?

Just saw that QGIS 3.36.2 comes with Python 3.12. @j3r3m1 , is it possible to adjust numba-version to be compatible with 3.12? We need to follow QGIS repo updates. I see that numba 0.59 is included in the QGIS repo but you are using 0.57.

@biglimp
Copy link
Contributor

biglimp commented May 6, 2024

How do I downgrade the Python version to 3.11?. Do I have to uninstall version 3.12 first and reinstall version 3.11? Can this affect dependencies with other libraries and programs?

The version before was Python 3.9. I never downgraded Python in QGIS before but it should be possible. Go to the setup and try to change version.

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 6, 2024

I think that Numba is not compatible yet with Python 3.12 (see numba/numba#9250 and numba/numba#9197). You better keep 3.11 for now.
I am not that good at using osgeo4W. @biglimp any idea how to select a specific Python version in osgeo4w ?

Just saw that QGIS 3.36.2 comes with Python 3.12. @j3r3m1 , is it possible to adjust numba-version to be compatible with 3.12? We need to follow QGIS repo updates. I see that numba 0.59 is included in the QGIS repo but you are using 0.57.

Where did you check that the numba version used in UMEP is 0.57 ? In the UMEP-reqs there are no version defined (https://github.com/UMEP-dev/umep-reqs/blob/9e1f73fb76269cce8057d52b4f60ae583a8bd441/umep-reqs/setup.py#L31). So it should install the right version directly.

However, you are right, they say on the Pypi website that version 3.12 can be used with Numba 0.59. And I have reread the thread I have pointed out and it has been closed in February. So 0.59 should work but it is not installed by default.

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 6, 2024

Using cached umep_reqs-2.1.1-py3-none-any.whl.metadata (301 bytes)
INFO: pip is looking at multiple versions of umep-reqs to determine which version is compatible with other requirements. This could take a while.
Using cached umep_reqs-2.1-py3-none-any.whl.metadata (310 bytes)
Using cached umep_reqs-2.0.1-py3-none-any.whl.metadata (307 bytes)
Collecting supy==2022.9.22 (from umep-reqs)
Using cached supy-2022.9.22-py3-none-any.whl.metadata (4.7 kB)
Collecting numba==0.56.4 (from umep-reqs)
Using cached numba-0.56.4.tar.gz (2.4 MB)

@Inspire71 Reading more in detail your error log, it seems it is not the last version of the umep-reqs which is used. An attempt is made to use the last one but it probably fails thus trying previous version that are saved in your cache. It seems the same problem is met in #78 (in the last message which has disappearred from GitHub...). There are probably conflicts between libraries in the last versions of QGIS that make it uses old umep-requirements.
@biglimp do you have the last QGIS version installed on your computer ?

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 6, 2024

@Inspire71 could you please try the following:

  1. While having an active QGIS session running, go to your osgeo4w command prompt and type pip install umep-reqs
  2. If the command above gave you error, paste it here and then close your QGIS session and retype pip install umep-reqs

Thank you for helping us at investigating this problem.

@biglimp
Copy link
Contributor

biglimp commented May 6, 2024

Using cached umep_reqs-2.1.1-py3-none-any.whl.metadata (301 bytes)
INFO: pip is looking at multiple versions of umep-reqs to determine which version is compatible with other requirements. This could take a while.
Using cached umep_reqs-2.1-py3-none-any.whl.metadata (310 bytes)
Using cached umep_reqs-2.0.1-py3-none-any.whl.metadata (307 bytes)
Collecting supy==2022.9.22 (from umep-reqs)
Using cached supy-2022.9.22-py3-none-any.whl.metadata (4.7 kB)
Collecting numba==0.56.4 (from umep-reqs)
Using cached numba-0.56.4.tar.gz (2.4 MB)

@Inspire71 Reading more in detail your error log, it seems it is not the last version of the umep-reqs which is used. An attempt is made to use the last one but it probably fails thus trying previous version that are saved in your cache. It seems the same problem is met in #78 (in the last message which has disappearred from GitHub...). There are probably conflicts between libraries in the last versions of QGIS that make it uses old umep-requirements. @biglimp do you have the last QGIS version installed on your computer ?

No, I still have 3.9 but I can take on of my computers and update to 3.12 so that we can use is for testing.

@Inspire71
Copy link

I have the latest version of QGIS 3.36.2-Maidenhead installed

@Inspire71
Copy link

I have executed what you mentioned and it gives me this message:

@Inspire71
Copy link

C:\OSGeo4W>pip install umep-reqs
Collecting umep-reqs
Using cached umep_reqs-2.1.1-py3-none-any.whl.metadata (301 bytes)
INFO: pip is looking at multiple versions of umep-reqs to determine which version is compatible with other requirements. This could take a while.
Using cached umep_reqs-2.1-py3-none-any.whl.metadata (310 bytes)
Using cached umep_reqs-2.0.1-py3-none-any.whl.metadata (307 bytes)
Collecting supy==2022.9.22 (from umep-reqs)
Using cached supy-2022.9.22-py3-none-any.whl.metadata (4.7 kB)
Collecting numba==0.56.4 (from umep-reqs)
Using cached numba-0.56.4.tar.gz (2.4 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [23 lines of output]
C:\Users\atorr\AppData\Local\Temp\pip-install-2bsug503\numba_a840df250a794072bc1f3f49698f9cca\versioneer.py:335: SyntaxWarning: invalid escape sequence '\s'
LONG_VERSION_PY['git'] = '''
Traceback (most recent call last):
File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 353, in
main()
File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\atorr\AppData\Local\Temp\pip-build-env-9cjz0xa9\overlay\Lib\site-packages\setuptools\build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\atorr\AppData\Local\Temp\pip-build-env-9cjz0xa9\overlay\Lib\site-packages\setuptools\build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "C:\Users\atorr\AppData\Local\Temp\pip-build-env-9cjz0xa9\overlay\Lib\site-packages\setuptools\build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "C:\Users\atorr\AppData\Local\Temp\pip-build-env-9cjz0xa9\overlay\Lib\site-packages\setuptools\build_meta.py", line 311, in run_setup
exec(code, locals())
File "", line 51, in
File "", line 48, in _guard_py_ver
RuntimeError: Cannot install on Python version 3.12.3; only versions >=3.7,<3.11 are supported.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

@biglimp
Copy link
Contributor

biglimp commented May 6, 2024

Installed a 3.36.2. Got the following error trying to install umep-reqs:

run o-help for a list of available commands
C:\OSGeo4W>pip install umep-reqs
Collecting umep-reqs
  Using cached umep_reqs-2.1.1-py3-none-any.whl.metadata (301 bytes)
INFO: pip is looking at multiple versions of umep-reqs to determine which version is compatible with other requirements. This could take a while.
  Using cached umep_reqs-2.1-py3-none-any.whl.metadata (310 bytes)
  Using cached umep_reqs-2.0.1-py3-none-any.whl.metadata (307 bytes)
Collecting supy==2022.9.22 (from umep-reqs)
  Using cached supy-2022.9.22-py3-none-any.whl.metadata (4.7 kB)
Collecting numba==0.56.4 (from umep-reqs)
  Using cached numba-0.56.4.tar.gz (2.4 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [23 lines of output]
      C:\Users\xlinfr\AppData\Local\Temp\pip-install-yc04gdfr\numba_5011fdd48d4a40549e191de0245ddf5e\versioneer.py:335: SyntaxWarning: invalid escape sequence '\s'
        LONG_VERSION_PY['git'] = '''
      Traceback (most recent call last):
        File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\xlinfr\AppData\Local\Temp\pip-build-env-dolsoaaq\overlay\Lib\site-packages\setuptools\build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\xlinfr\AppData\Local\Temp\pip-build-env-dolsoaaq\overlay\Lib\site-packages\setuptools\build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "C:\Users\xlinfr\AppData\Local\Temp\pip-build-env-dolsoaaq\overlay\Lib\site-packages\setuptools\build_meta.py", line 487, in run_setup
          super().run_setup(setup_script=setup_script)
        File "C:\Users\xlinfr\AppData\Local\Temp\pip-build-env-dolsoaaq\overlay\Lib\site-packages\setuptools\build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 51, in <module>
        File "<string>", line 48, in _guard_py_ver
      RuntimeError: Cannot install on Python version 3.12.3; only versions >=3.7,<3.11 are supported.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

C:\OSGeo4W> 

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 6, 2024

OK thank you. No more information than what you logged before then. It just cannot manage to solve dependencies of the last umep-reqs but we cannot figure out what's wrong. Then can you try the following (individual installation of the missing libraries). In the osgeo shell you can type:

pip install supy==2023.5.26.dev0
pip install numba
pip install jaydebeapi==1.2.3
pip install netCDF4

If we still meet problems we can try to replace the numba line by a specific numba number:

pip install numba=0.59.1

@biglimp
Copy link
Contributor

biglimp commented May 6, 2024

This is what I got. Need to run to a meeting. Catch you later.

C:\OSGeo4W>pip install supy==2023.5.26.dev0
ERROR: Ignored the following yanked versions: 2022.2.17, 2022.3.17, 2022.9.18, 2022.9.19, 2022.9.20, 2022.9.22
ERROR: Could not find a version that satisfies the requirement supy==2023.5.26.dev0 (from versions: 0.4.0b0, 0.4.0b1, 0.4.0b2, 0.4.1b0, 0.4.1b1, 0.5.0a0, 0.5.1, 0.5.3b0, 0.5.3, 0.5.4, 0.5.5, 0.5.6, 0.5.7, 0.5.8, 2018.11.5, 2018.11.6, 2018.11.7, 2018.11.8, 2018.11.10, 2018.12.2, 2018.12.12, 2018.12.15, 2018.12.21, 2018.12.29, 2018.12.30a3, 2018.12.30, 2018.12.31a0, 2018.12.31a1, 2018.12.31a2, 2018.12.31a3, 2018.12.31, 2019.1.1, 2019.1.25, 2019.2.1, 2019.2.5, 2019.2.6, 2019.2.8, 2019.2.21, 2019.2.24, 2019.2.25, 2019.3.14, 2019.3.15, 2019.3.21, 2019.4.12, 2019.4.15, 2019.4.17, 2019.7.26, 2019.11.15.dev0, 2019.11.18.dev0, 2019.11.24, 2019.11.25, 2019.12.3.dev0, 2019.12.5, 2019.12.6.dev0, 2019.12.6, 2019.12.14.dev0, 2019.12.16.dev0, 2020.1.4.dev0, 2020.1.8.dev0, 2020.1.9.dev0, 2020.1.22, 2020.1.23, 2020.1.27.dev0, 2020.1.27.dev1, 2020.1.27.dev2, 2020.1.28.dev0, 2020.1.28.dev2, 2020.2.2.dev0, 2020.2.2, 2020.2.8.dev1, 2020.2.13.dev0, 2020.2.14.dev0, 2020.2.29, 2020.3.18, 2020.4.10.dev0, 2020.4.10.dev1, 2020.4.11.dev0, 2020.5.5, 2020.5.6.dev0, 2020.5.14.dev0, 2020.5.15.dev0, 2020.5.16, 2020.5.25.dev0, 2020.6.18.dev0, 2020.6.26.dev0, 2020.6.30, 2020.7.1.dev0, 2020.7.7.dev0, 2020.7.8.dev0, 2020.7.14.dev0, 2020.7.15.dev0, 2020.7.21.dev0, 2020.7.30.dev0, 2020.7.31.dev0, 2020.8.3.dev0, 2020.8.6, 2020.8.8, 2020.8.9, 2020.11.3.dev0, 2021.1.7, 2021.1.12, 2021.1.19, 2021.2.3, 2021.2.17.dev0, 2021.2.26, 2021.3.24, 2021.3.30, 2021.5.21.dev0, 2021.5.25.dev0, 2021.5.26, 2021.7.1, 2021.7.15, 2021.7.22, 2021.11.20, 2021.11.22, 2022.2.7, 2022.4.7, 2022.6.6.dev0, 2022.6.14.dev0, 2022.7.1.dev0, 2022.8.2.dev1, 2022.8.5.dev0, 2022.9.19.dev0, 2022.9.19.dev1)
ERROR: No matching distribution found for supy==2023.5.26.dev0

C:\OSGeo4W>pip install numba
Requirement already satisfied: numba in c:\osgeo4w\apps\python312\lib\site-packages (0.59.0)
Requirement already satisfied: llvmlite<0.43,>=0.42.0dev0 in c:\osgeo4w\apps\python312\lib\site-packages (from numba) (0.42.0)
Requirement already satisfied: numpy<1.27,>=1.22 in c:\osgeo4w\apps\python312\lib\site-packages (from numba) (1.26.4)

C:\OSGeo4W>pip install jaydebeapi==1.2.3
Collecting jaydebeapi==1.2.3
  Downloading JayDeBeApi-1.2.3-py3-none-any.whl.metadata (10 kB)
Collecting JPype1 (from jaydebeapi==1.2.3)
  Downloading JPype1-1.5.0-cp312-cp312-win_amd64.whl.metadata (5.0 kB)
Requirement already satisfied: packaging in c:\osgeo4w\apps\python312\lib\site-packages (from JPype1->jaydebeapi==1.2.3) (24.0)
Using cached JayDeBeApi-1.2.3-py3-none-any.whl (26 kB)
Downloading JPype1-1.5.0-cp312-cp312-win_amd64.whl (352 kB)
   ---------------------------------------- 352.2/352.2 kB 3.1 MB/s eta 0:00:00
Installing collected packages: JPype1, jaydebeapi
Successfully installed JPype1-1.5.0 jaydebeapi-1.2.3

C:\OSGeo4W>pip install netCDF4
Requirement already satisfied: netCDF4 in c:\users\xlinfr\appdata\roaming\python\python312\site-packages (1.6.5)
Requirement already satisfied: cftime in c:\users\xlinfr\appdata\roaming\python\python312\site-packages (from netCDF4) (1.6.3)
Requirement already satisfied: certifi in c:\osgeo4w\apps\python312\lib\site-packages (from netCDF4) (2024.2.2)
Requirement already satisfied: numpy in c:\osgeo4w\apps\python312\lib\site-packages (from netCDF4) (1.26.4)

C:\OSGeo4W>

@Inspire71
Copy link

C:\OSGeo4W>pip install supy==2023.5.26.dev0
ERROR: Ignored the following yanked versions: 2022.2.17, 2022.3.17, 2022.9.18, 2022.9.19, 2022.9.20, 2022.9.22
ERROR: Could not find a version that satisfies the requirement supy==2023.5.26.dev0 (from versions: 0.4.0b0, 0.4.0b1, 0.4.0b2, 0.4.1b0, 0.4.1b1, 0.5.0a0, 0.5.1, 0.5.3b0, 0.5.3, 0.5.4, 0.5.5, 0.5.6, 0.5.7, 0.5.8, 2018.11.5, 2018.11.6, 2018.11.7, 2018.11.8, 2018.11.10, 2018.12.2, 2018.12.12, 2018.12.15, 2018.12.21, 2018.12.29, 2018.12.30a3, 2018.12.30, 2018.12.31a0, 2018.12.31a1, 2018.12.31a2, 2018.12.31a3, 2018.12.31, 2019.1.1, 2019.1.25, 2019.2.1, 2019.2.5, 2019.2.6, 2019.2.8, 2019.2.21, 2019.2.24, 2019.2.25, 2019.3.14, 2019.3.15, 2019.3.21, 2019.4.12, 2019.4.15, 2019.4.17, 2019.7.26, 2019.11.15.dev0, 2019.11.18.dev0, 2019.11.24, 2019.11.25, 2019.12.3.dev0, 2019.12.5, 2019.12.6.dev0, 2019.12.6, 2019.12.14.dev0, 2019.12.16.dev0, 2020.1.4.dev0, 2020.1.8.dev0, 2020.1.9.dev0, 2020.1.22, 2020.1.23, 2020.1.27.dev0, 2020.1.27.dev1, 2020.1.27.dev2, 2020.1.28.dev0, 2020.1.28.dev2, 2020.2.2.dev0, 2020.2.2, 2020.2.8.dev1, 2020.2.13.dev0, 2020.2.14.dev0, 2020.2.29, 2020.3.18, 2020.4.10.dev0, 2020.4.10.dev1, 2020.4.11.dev0, 2020.5.5, 2020.5.6.dev0, 2020.5.14.dev0, 2020.5.15.dev0, 2020.5.16, 2020.5.25.dev0, 2020.6.18.dev0, 2020.6.26.dev0, 2020.6.30, 2020.7.1.dev0, 2020.7.7.dev0, 2020.7.8.dev0, 2020.7.14.dev0, 2020.7.15.dev0, 2020.7.21.dev0, 2020.7.30.dev0, 2020.7.31.dev0, 2020.8.3.dev0, 2020.8.6, 2020.8.8, 2020.8.9, 2020.11.3.dev0, 2021.1.7, 2021.1.12, 2021.1.19, 2021.2.3, 2021.2.17.dev0, 2021.2.26, 2021.3.24, 2021.3.30, 2021.5.21.dev0, 2021.5.25.dev0, 2021.5.26, 2021.7.1, 2021.7.15, 2021.7.22, 2021.11.20, 2021.11.22, 2022.2.7, 2022.4.7, 2022.6.6.dev0, 2022.6.14.dev0, 2022.7.1.dev0, 2022.8.2.dev1, 2022.8.5.dev0, 2022.9.19.dev0, 2022.9.19.dev1)
ERROR: No matching distribution found for supy==2023.5.26.dev0

C:\OSGeo4W>pip install numba
Requirement already satisfied: numba in c:\osgeo4w\apps\python312\lib\site-packages (0.59.1)
Requirement already satisfied: llvmlite<0.43,>=0.42.0dev0 in c:\osgeo4w\apps\python312\lib\site-packages (from numba) (0.42.0)
Requirement already satisfied: numpy<1.27,>=1.22 in c:\osgeo4w\apps\python312\lib\site-packages (from numba) (1.26.4)

C:\OSGeo4W>pip install jaydebeapi==1.2.3
Requirement already satisfied: jaydebeapi==1.2.3 in c:\osgeo4w\apps\python312\lib\site-packages (1.2.3)
Requirement already satisfied: JPype1 in c:\osgeo4w\apps\python312\lib\site-packages (from jaydebeapi==1.2.3) (1.5.0)
Requirement already satisfied: packaging in c:\osgeo4w\apps\python312\lib\site-packages (from JPype1->jaydebeapi==1.2.3) (24.0)

C:\OSGeo4W>pip install netCDF4
Requirement already satisfied: netCDF4 in c:\users\atorr\appdata\roaming\python\python312\site-packages (1.6.5)
Requirement already satisfied: cftime in c:\users\atorr\appdata\roaming\python\python312\site-packages (from netCDF4) (1.6.3)
Requirement already satisfied: certifi in c:\osgeo4w\apps\python312\lib\site-packages (from netCDF4) (2024.2.2)
Requirement already satisfied: numpy in c:\osgeo4w\apps\python312\lib\site-packages (from netCDF4) (1.26.4)

@Inspire71
Copy link

This is the result, I got an error with pip install supy==2023.5.26.dev0

@Inspire71
Copy link

Is this version OK?

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 6, 2024

Thank you for your debug info, we will check that with @biglimp and come back to you with a solution.

@Inspire71
Copy link

thanks a lot

@biglimp
Copy link
Contributor

biglimp commented May 7, 2024

@Inspire71, we found that QGIS.org updated Python, which makes our tool not functional at the moment. We are working on a solution.

@Inspire71
Copy link

Inspire71 commented May 7, 2024 via email

@biglimp
Copy link
Contributor

biglimp commented May 28, 2024

@j3r3m1, trying to get this working but runs into numba issues on my W10 (QGIS, 3.36.3, Python 3.12). We nned to use another numba vesrion, it seems. Any suggestions? Do we need to make changes in umep-reqs?

C:\OSGeo4W>pip install umep-reqs
Collecting umep-reqs
  Using cached umep_reqs-2.1.1-py3-none-any.whl.metadata (301 bytes)
INFO: pip is looking at multiple versions of umep-reqs to determine which version is compatible with other requirements. This could take a while.
  Using cached umep_reqs-2.1-py3-none-any.whl.metadata (310 bytes)
  Using cached umep_reqs-2.0.1-py3-none-any.whl.metadata (307 bytes)
Collecting supy==2022.9.22 (from umep-reqs)
  Using cached supy-2022.9.22-py3-none-any.whl.metadata (4.7 kB)
Collecting numba==0.56.4 (from umep-reqs)
  Using cached numba-0.56.4.tar.gz (2.4 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [23 lines of output]
      C:\Users\xlinfr\AppData\Local\Temp\pip-install-ep7slsg7\numba_c6ad0d21e040418faf5cabc2807e9cd0\versioneer.py:335: SyntaxWarning: invalid escape sequence '\s'
        LONG_VERSION_PY['git'] = '''
      Traceback (most recent call last):
        File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\OSGeo4W\apps\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\xlinfr\AppData\Local\Temp\pip-build-env-ry3d5qs_\overlay\Lib\site-packages\setuptools\build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\xlinfr\AppData\Local\Temp\pip-build-env-ry3d5qs_\overlay\Lib\site-packages\setuptools\build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "C:\Users\xlinfr\AppData\Local\Temp\pip-build-env-ry3d5qs_\overlay\Lib\site-packages\setuptools\build_meta.py", line 487, in run_setup
          super().run_setup(setup_script=setup_script)
        File "C:\Users\xlinfr\AppData\Local\Temp\pip-build-env-ry3d5qs_\overlay\Lib\site-packages\setuptools\build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 51, in <module>
        File "<string>", line 48, in _guard_py_ver
      RuntimeError: Cannot install on Python version 3.12.3; only versions >=3.7,<3.11 are supported.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

C:\OSGeo4W>

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 28, 2024

Well I am not sure I can follow all dependencies we have in UMEP and SUPY but as far as I understand there are not a lot needed by Numba (https://numba.readthedocs.io/en/stable/user/installing.html#dependency-list). But for sure the dependency management should not end with the 0.56 for Numba if you have a 3.12 version of Python (see https://numba.readthedocs.io/en/stable/user/installing.html#version-support-information, at least 0.59.0 is needed). An option would be to specify Numba>=0.59.0 as it seems to work with quite a large number of Python AND numpy version. Can you have a test ?

@biglimp
Copy link
Contributor

biglimp commented May 29, 2024

I manually installed numba and now it works. Strange that it wants to install numba==0.56... Looks like cashed umep-reqs is used. Any idea how to solve this or should we state numba==0.59.0 in umep-reqs maybe...? I cannot locate where these cashed umep-reqs is stored. Do you know?

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 29, 2024

An option would be to use the "--no-cache-dir" option when using pip (cf. https://stackoverflow.com/questions/9510474/pip-uses-incorrect-cached-package-version-instead-of-the-user-specified-version).

@j3r3m1
Copy link
Collaborator Author

j3r3m1 commented May 29, 2024

Otherwise using numba>=0.59.0 may make the job for most users

@biglimp
Copy link
Contributor

biglimp commented May 29, 2024

Yes. I will just try using new supy version and numba=0.59 on my pc where I have Python 3.9 and see if it works. If everything is ok, we can update umep-reqs.

@biglimp
Copy link
Contributor

biglimp commented Jun 3, 2024

@Inspire71 , I updated umep-reqs which should now work with Python 3.12. Try restarting QGIS and UMEP for Processing and see if you can get the correct libraries installed.

@Inspire71
Copy link

@biglimp I have reinstalled the plugin directly from QGIS and I am still having the same problem, I think this plugin is not up to date.
Then I have installed the UMEP requirements again via C:OSGeo4W>pip install umep-reqs and it seems that everything works correctly. Later I have opened QGIS and it no longer notifies me of python problems
Thank you

@j3r3m1 j3r3m1 closed this as completed Jun 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants