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

Python 3.12 support #251

Open
PierreRustOrange opened this issue Dec 1, 2023 · 1 comment
Open

Python 3.12 support #251

PierreRustOrange opened this issue Dec 1, 2023 · 1 comment
Labels
bug Something isn't working

Comments

@PierreRustOrange
Copy link

Bug description

Wa cannot currently install boaviztapi when using python 3.12

To Reproduce

pyenv install 3.12.0
pyenv shell 3.12.0
make install

When installing numpy, the process fails with the follwing error :

  • Installing numpy (1.24.4): Failed

  ChefBuildError

  Backend 'setuptools.build_meta:__legacy__' is not available.

  Traceback (most recent call last):
    File "/Users/pierre/.local/pipx/venvs/poetry/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend
      obj = import_module(mod_path)
            ^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/[email protected]/3.12.0/Frameworks/Python.framework/Versions/3.12/lib/python3.12/importlib/__init__.py", line 90, in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "<frozen importlib._bootstrap>", line 1381, in _gcd_import
    File "<frozen importlib._bootstrap>", line 1354, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1304, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
    File "<frozen importlib._bootstrap>", line 1381, in _gcd_import
    File "<frozen importlib._bootstrap>", line 1354, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1325, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 929, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 994, in exec_module
    File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
    File "/private/var/folders/tp/y92gnztn1tb4r1q1spmz44d00000gn/T/tmpnwxg8483/.venv/lib/python3.12/site-packages/setuptools/__init__.py", line 10, in <module>
      import distutils.core
  ModuleNotFoundError: No module named 'distutils'

  at ~/.local/pipx/venvs/poetry/lib/python3.12/site-packages/poetry/installation/chef.py:164 in _prepare
      160│
      161│                 error = ChefBuildError("\n\n".join(message_parts))
      162│
      163│             if error is not None:
    → 164│                 raise error from None
      165│
      166│             return path
      167│
      168│     def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:

Note: This error originates from the build backend, and is likely not a problem with poetry but with numpy (1.24.4) not supporting PEP 517 builds. You can verify this by running 'pip wheel --no-cache-dir --use-pep517 "numpy (==1.24.4)"'.

Solution

  • python 3.12 is only supported by numpy >= 1.26
  • updating numpy requires updating scipy as well
  • but scipy is constrained by the version of python we want to support (currently 3.8) : we cannot update scipy if we want to keep supporting python 3.8

As a consequence we need to choose between supporting python 3.8 or python 3.12.

I would say that supporting 3.12 is not really urgent for the moment, we can probably wait a few month before supporting it , and deprecating 3.8 at the same time.

@demeringo
Copy link
Collaborator

demeringo commented Mar 4, 2024

Just for summary:

  • end of life (end of security patches) of Python 3.8 is Oct 2024
  • end of life (end of security patches) of Python 3.12 is Oct 2028

https://devguide.python.org/versions/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants