UMEP-dev / UMEP-processing

7 stars 9 forks source link

Trouble with Numba using Python 3.12 #79

Closed j3r3m1 closed 1 week ago

j3r3m1 commented 1 month ago
          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 https://github.com/UMEP-dev/UMEP-processing/issues/24#issuecomment-2094912590

j3r3m1 commented 1 month ago

I think that Numba is not compatible yet with Python 3.12 (see https://github.com/numba/numba/issues/9250 and https://github.com/numba/numba/issues/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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

@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 commented 1 month ago

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 commented 1 month ago

I have the latest version of QGIS 3.36.2-Maidenhead installed

Inspire71 commented 1 month ago

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

Inspire71 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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

Inspire71 commented 1 month ago

Is this version OK?

j3r3m1 commented 1 month ago

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

Inspire71 commented 1 month ago

thanks a lot

biglimp commented 1 month ago

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

Inspire71 commented 1 month ago

Thanks for the help, I hope it can be resolved soon.

A. Torres


From: biglimp @.> Sent: Tuesday, May 7, 2024 1:32:41 PM To: UMEP-dev/UMEP-processing @.> Cc: Inspire71 @.>; Mention @.> Subject: Re: [UMEP-dev/UMEP-processing] Trouble with Numba using Python 3.12 (Issue #79)

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

— Reply to this email directly, view it on GitHubhttps://github.com/UMEP-dev/UMEP-processing/issues/79#issuecomment-2098191231, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXYJ72ERQ3WX5VDNQKGRVI3ZBC3VTAVCNFSM6AAAAABHH7JOC2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJYGE4TCMRTGE. You are receiving this because you were mentioned.Message ID: @.***>

biglimp commented 1 month ago

@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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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 commented 1 month ago

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

biglimp commented 1 month ago

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 commented 3 weeks ago

@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 commented 1 week ago

@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