Skip to content

Unable to install/build the llvmlite package #6281

@taranlu-houzz

Description

@taranlu-houzz

I ran into this while trying to install an internal package from a private repo that has a dep (or rather, dep of a dep, etc.) on llvmlite. I am able to successfully install the package when using pipx, but uv fails to install it.

❌ 2 ❯ uv tool install --python 3.11 --python-preference only-managed --extra-index-url 'my-url' --prerelease allow --refresh my-package
Resolved 26 packages in 808ms
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: llvmlite==0.35.0
  Caused by: Build backend failed to build wheel through `build_wheel()` with exit status: 1
--- stdout:
running bdist_wheel
/Users/taran/.cache/uv/builds-v0/.tmpsZC6qP/bin/python /Users/taran/.cache/uv/built-wheels-v3/index/6dbd262e64c3fb74/llvmlite/0.35.0/aQd_pIr8Ymw1uotL255dv/llvmlite-0.35
.0.tar.gz/ffi/build.py
LLVM version...
--- stderr:
Traceback (most recent call last):
  File "/Users/taran/.cache/uv/built-wheels-v3/index/6dbd262e64c3fb74/llvmlite/0.35.0/aQd_pIr8Ymw1uotL255dv/llvmlite-0.35.0.tar.gz/ffi/build.py", line 105, in main_posi
x
    out = subprocess.check_output([llvm_config, '--version'])
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/taran/.local/share/uv/python/cpython-3.11.9-macos-aarch64-none/lib/python3.11/subprocess.py", line 466, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/taran/.local/share/uv/python/cpython-3.11.9-macos-aarch64-none/lib/python3.11/subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/taran/.local/share/uv/python/cpython-3.11.9-macos-aarch64-none/lib/python3.11/subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Users/taran/.local/share/uv/python/cpython-3.11.9-macos-aarch64-none/lib/python3.11/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 "/Users/taran/.cache/uv/built-wheels-v3/index/6dbd262e64c3fb74/llvmlite/0.35.0/aQd_pIr8Ymw1uotL255dv/llvmlite-0.35.0.tar.gz/ffi/build.py", line 191, in <module>
    main()
  File "/Users/taran/.cache/uv/built-wheels-v3/index/6dbd262e64c3fb74/llvmlite/0.35.0/aQd_pIr8Ymw1uotL255dv/llvmlite-0.35.0.tar.gz/ffi/build.py", line 185, in main
    main_posix('osx', '.dylib')
  File "/Users/taran/.cache/uv/built-wheels-v3/index/6dbd262e64c3fb74/llvmlite/0.35.0/aQd_pIr8Ymw1uotL255dv/llvmlite-0.35.0.tar.gz/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 '/Users/taran/.cache/uv/builds-v0/.tmpsZC6qP/bin/python' failed with exit code 1
---

It seems like the issue occurs when trying to install the llvmlite package, which it tries to build (the error below is a little different than the initial error).

❌ 2 ❯ uv tool install --python 3.11 --python-preference only-managed --no-binary --refresh --prerelease allow --verbose llvmlite
DEBUG uv 0.3.0
DEBUG Searching for Python 3.11 in managed installations
DEBUG Searching for managed installations at `/Users/taran/.local/share/uv/python`
DEBUG Found managed installation `cpython-3.11.9-macos-aarch64-none`
DEBUG Found `cpython-3.11.9-macos-aarch64-none` at `/Users/taran/.local/share/uv/python/cpython-3.11.9-macos-aarch64-none/bin/python3` (managed installations)
DEBUG Using request timeout of 30s
DEBUG Using request timeout of 30s
DEBUG Acquired lock for `/Users/taran/.local/share/uv/tools`
DEBUG Using existing environment for tool `llvmlite`: /Users/taran/.local/share/uv/tools/llvmlite
DEBUG Found existing environment for `llvmlite`
DEBUG At least one requirement is not satisfied: llvmlite
DEBUG Using request timeout of 30s
DEBUG Solving with installed Python version: 3.11.9
DEBUG Adding direct dependency: llvmlite*
DEBUG Found stale response for: https://pypi.org/simple/llvmlite/
DEBUG Sending revalidation request for: https://pypi.org/simple/llvmlite/
DEBUG Found not-modified response for: https://pypi.org/simple/llvmlite/
DEBUG Searching for a compatible version of llvmlite (*)
DEBUG Selecting: llvmlite==0.43.0 [compatible] (llvmlite-0.43.0.tar.gz)
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/23/ff/6ca7e98998b573b4bd6566f15c35e5c8bea829663a6df0c7aa55ab559da9/llvmlite-0.43.0-cp310-cp310-m
acosx_10_9_x86_64.whl.metadata
DEBUG Tried 1 versions: llvmlite 1
DEBUG Split specific environment resolution took 0.032s
Resolved 1 package in 33ms
DEBUG Must revalidate requirement: llvmlite
DEBUG Acquired lock for `/Users/taran/.cache/uv/built-wheels-v3/pypi/llvmlite/0.43.0`
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz
DEBUG Building: llvmlite==0.43.0
INFO Ignoring empty directory
DEBUG Solving with installed Python version: 3.11.9
DEBUG Adding direct dependency: setuptools>=40.8.0
DEBUG Found stale response for: https://pypi.org/simple/setuptools/
DEBUG Sending revalidation request for: https://pypi.org/simple/setuptools/
DEBUG Found not-modified response for: https://pypi.org/simple/setuptools/
DEBUG Searching for a compatible version of setuptools (>=40.8.0)
DEBUG Selecting: setuptools==73.0.1 [compatible] (setuptools-73.0.1.tar.gz)
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/07/6a/0270e295bf30c37567736b7fca10167640898214ff911273af37ddb95770/setuptools-73.0.1-py3-none-an
y.whl.metadata
DEBUG Tried 1 versions: setuptools 1
DEBUG Split specific environment resolution took 0.008s
DEBUG Installing in setuptools==73.0.1 in /Users/taran/.cache/uv/builds-v0/.tmp5621wb
DEBUG Must revalidate requirement: setuptools
DEBUG Downloading and building requirement for build: setuptools==73.0.1
DEBUG Acquired lock for `/Users/taran/.cache/uv/built-wheels-v3/pypi/setuptools/73.0.1`
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/8d/37/f4d4ce9bc15e61edba3179f9b0f763fc6d439474d28511b11f0d95bab7a2/setuptools-73.0.1.tar.gz
DEBUG Installing build requirement: setuptools==73.0.1
DEBUG Calling `setuptools.build_meta:__legacy__.get_requires_for_build_wheel()`
DEBUG Calling `setuptools.build_meta:__legacy__.build_wheel("/Users/taran/.cache/uv/built-wheels-v3/pypi/llvmlite/0.43.0/H_0AbqOoYKQrOJ2gTkAhX/.tmpmg60Nv", {}, None)`
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: llvmlite==0.43.0
  Caused by: Build backend failed to build wheel through `build_wheel()` with exit status: 1
--- stdout:
running bdist_wheel
/Users/taran/.cache/uv/builds-v0/.tmp5621wb/bin/python /Users/taran/.cache/uv/built-wheels-v3/pypi/llvmlite/0.43.0/H_0AbqOoYKQrOJ2gTkAhX/llvmlite-0.43.0.tar.gz/ffi/build.py
LLVM version...
--- stderr:
Traceback (most recent call last):
  File "/Users/taran/.cache/uv/built-wheels-v3/pypi/llvmlite/0.43.0/H_0AbqOoYKQrOJ2gTkAhX/llvmlite-0.43.0.tar.gz/ffi/build.py", line 235, in <module>
    main()
  File "/Users/taran/.cache/uv/built-wheels-v3/pypi/llvmlite/0.43.0/H_0AbqOoYKQrOJ2gTkAhX/llvmlite-0.43.0.tar.gz/ffi/build.py", line 229, in main
    main_posix('osx', '.dylib')
  File "/Users/taran/.cache/uv/built-wheels-v3/pypi/llvmlite/0.43.0/H_0AbqOoYKQrOJ2gTkAhX/llvmlite-0.43.0.tar.gz/ffi/build.py", line 142, in main_posix
    raise RuntimeError(msg) from None
RuntimeError: Could not find a `llvm-config` binary. There are a number of reasons this could occur, please see: https://llvmlite.readthedocs.io/en/latest/admin-guide/install.html#using-pip for help.
error: command '/Users/taran/.cache/uv/builds-v0/.tmp5621wb/bin/python' failed with exit code 1
---

Platform: macOS 14.6 (23G80)
uv version: uv 0.3.0 (dd1934c9c 2024-08-20)

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionAsking for clarification or support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions