pydata / sparse

Sparse multi-dimensional arrays for the PyData ecosystem
https://sparse.pydata.org
BSD 3-Clause "New" or "Revised" License
604 stars 127 forks source link

Bug: failing to install pydata/sparse with poetry #794

Open willow-ahrens opened 1 month ago

willow-ahrens commented 1 month ago

sparse version checks

Describe the bug

poetry install results

Steps or code to reproduce the bug

make a blank poetry project.

poetry add sparse

Expected results

installs sparse

Actual results

Updating dependencies
Resolving dependencies... (0.2s)

Package operations: 1 install, 5 updates, 0 removals

  - Downgrading llvmlite (0.42.0 -> 0.34.0): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke build_wheel

  running bdist_wheel
  /private/var/folders/3j/06rp16v14vv9v1ylqc38k5100000gn/T/tmpyvhdws4b/.venv/bin/python /private/var/folders/3j/06rp16v14vv9v1ylqc38k5100000gn/T/tmpc55srz27/llvmlite-0.34.0/ffi/build.py
  LLVM version... Traceback (most recent call last):
    File "/private/var/folders/3j/06rp16v14vv9v1ylqc38k5100000gn/T/tmpc55srz27/llvmlite-0.34.0/ffi/build.py", line 105, in main_posix
      out = subprocess.check_output([llvm_config, '--version'])
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 466, in check_output
      return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 548, in run
      with Popen(*popenargs, **kwargs) as process:
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/homebrew/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 1026, in __init__
      self._execute_child(args, executable, preexec_fn, close_fds,
    File "/opt/homebrew/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 1955, in _execute_child
      raise child_exception_type(errno_num, err_msg, err_filename)
  FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/private/var/folders/3j/06rp16v14vv9v1ylqc38k5100000gn/T/tmpc55srz27/llvmlite-0.34.0/ffi/build.py", line 191, in <module>
      main()
    File "/private/var/folders/3j/06rp16v14vv9v1ylqc38k5100000gn/T/tmpc55srz27/llvmlite-0.34.0/ffi/build.py", line 185, in main
      main_posix('osx', '.dylib')
    File "/private/var/folders/3j/06rp16v14vv9v1ylqc38k5100000gn/T/tmpc55srz27/llvmlite-0.34.0/ffi/build.py", line 107, in main_posix
      raise RuntimeError("%s failed executing, please point LLVM_CONFIG "
  RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
  error: command '/private/var/folders/3j/06rp16v14vv9v1ylqc38k5100000gn/T/tmpyvhdws4b/.venv/bin/python' failed with exit code 1

  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 llvmlite (0.34.0) not supporting PEP 517 builds. You can verify this by running 'pip wheel --no-cache-dir --use-pep517 "llvmlite (==0.34.0)"'.

Please describe your system.

macos, Python 3.12.7

Relevant log output

I think you need to bump the version of numba. I was able to fix by adding a dep on numba 0.60. llvmlite 0.34 is somewhat out of date.