datamole-ai / edvart

An open-source Python library for Data Scientists & Data Analysts designed to simplify the exploratory data analysis process. Using Edvart, you can explore data sets and generate reports with minimal coding.
https://datamole-ai.github.io/edvart/
MIT License
48 stars 7 forks source link

Installing with extras `umap` installs an outdated version of `llvmlite` #86

Closed mbelak-dtml closed 1 year ago

mbelak-dtml commented 1 year ago

Installing with extras umap installs an outdated version of llvmlite (0.34.0). This version is outdated and depends on an outdated version of the llvm binary, which causes problems. Example of a pyproject.toml for reproduction below.

[tool.poetry]
name = "edvart-umap"
version = "0.1.0"
description = ""
authors = []

[tool.poetry.dependencies]
python = "~3.11"
edvart = { version = "1.1.2", extras = ["umap"] }

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

When the outdated version of the llvm binary is not present in the system, an error similar to this one occurs during installation:

  • Installing llvmlite (0.34.0): Failed

  ChefBuildError

  Backend subprocess exited when trying to invoke build_wheel

  running bdist_wheel
  /tmp/tmp19edlyvs/.venv/bin/python /tmp/tmp31dtp6ep/llvmlite-0.34.0/ffi/build.py
  LLVM version... 15.0.7

  Traceback (most recent call last):
    File "/tmp/tmp31dtp6ep/llvmlite-0.34.0/ffi/build.py", line 191, in <module>
      main()
    File "/tmp/tmp31dtp6ep/llvmlite-0.34.0/ffi/build.py", line 181, in main
      main_posix('linux', '.so')
    File "/tmp/tmp31dtp6ep/llvmlite-0.34.0/ffi/build.py", line 143, in main_posix
      raise RuntimeError(msg)
  RuntimeError: Building llvmlite requires LLVM 10.0.x or 9.0.x, got '15.0.7'. Be sure to set LLVM_CONFIG to the right executable path.
  Read the documentation at http://llvmlite.pydata.org/ for more information about building llvmlite.

  error: command '/tmp/tmp19edlyvs/.venv/bin/python' failed with exit code 1

  at ~/.pyenv/versions/3.7.9/lib/python3.7/site-packages/poetry/installation/chef.py:147 in _prepare
      143│ 
      144│                 error = ChefBuildError("\n\n".join(message_parts))
      145│ 
      146│             if error is not None:
    → 147│                 raise error from None
      148│ 
      149│             return path
      150│ 
      151│     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 --use-pep517 "llvmlite (==0.34.0)"'.