abetlen / abetlen/llama-cpp-python

Error when building wheels on Linux FileNotFoundError: [Errno 2] No such file or directory: 'ninja'`

Aperta
#1,839 4 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
10.6k
Fork
1.4k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

# Prerequisites

Please answer the following questions for yourself before submitting an issue.

- [x] I am running the latest code. Development is very rapid so there are no tagged versions as of now.
- [x] I carefully followed the [README.md](https://github.com/abetlen/llama-cpp-python/blob/main/README.md).
- [x] I [searched using keywords relevant to my issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests) to make sure that I am creating a new issue that is not already open (or closed).
- [x] I reviewed the [Discussions](https://github.com/abetlen/llama-cpp-python/discussions), and have a new bug or useful enhancement to share.

# Expected Behavior

Please provide a detailed written description of what you were trying to do, and what you expected `llama-cpp-python` to do.

# Current Behavior

Building wheels results in error logs (see below).

# Environment and Context

- Docker file, building from `ubuntu:jammy`
- llama-cpp-python versions tested `0.2.88` and `0.3.2`. Behavior consistent.
- Note that I'm still able to build from source directly on my MacOS, so it might be something specific to Linux

# Failure Information (for bugs)

I'm unable to build wheels for `llama-cpp-python` in an `ubuntu:jammy` base Docker image. I get the error: `FileNotFoundError: [Errno 2] No such file or directory: 'ninja'`.

Please help provide information about the failure if this is a bug. If it is not a bug, please remove the rest of this template.

# Steps to Reproduce

Please provide detailed steps for reproducing the issue. We are not sitting in front of your screen, so the more detail the better.

1. `git clone git@github.com:khoj-ai/khoj.git`
2. `cd khoj && docker build .`

You should see the same error reproduced

# Failure Logs

```
0 54.02
#0 54.02 × Building wheel for llama-cpp-python (pyproject.toml) did not run successfully.
#0 54.02 │ exit code: 1
#0 54.02 ╰─> [34 lines of output]
#0 54.02 *** scikit-build-core 0.10.7 using CMake 3.31.1 (wheel)
#0 54.02 *** Configuring CMake...
#0 54.02 Traceback (most recent call last):
#0 54.02 File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in
#0 54.02 main()
#0 54.02 File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
#0 54.02 json_out['return_val'] = hook(**hook_input['kwargs'])
#0 54.02 File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 261, in build_wheel
#0 54.02 return _build_backend().build_wheel(wheel_directory, config_settings,
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/build/__init__.py", line 33, in build_wheel
#0 54.02 return _build_wheel_impl(
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/build/wheel.py", line 175, in _build_wheel_impl
#0 54.02 return _build_wheel_impl_impl(
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/build/wheel.py", line 402, in _build_wheel_impl_impl
#0 54.02 builder.configure(
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/builder/builder.py", line 166, in configure
#0 54.02 local_def = set_environment_for_gen(
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/builder/generator.py", line 121, in set_environment_for_gen
#0 54.02 ninja = best_program(get_ninja_programs(), version=ninja_settings.version)
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/program_search.py", line 169, in best_program
#0 54.02 for program in programs:
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/program_search.py", line 136, in get_ninja_programs
#0 54.02 result = Run().capture(ninja_path, "--version")
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/_shutil.py", line 43, in capture
#0 54.02 return self._run(args, capture=True)
#0 54.02 File "/tmp/pip-build-env-gvxo9xjm/overlay/local/lib/python3.10/dist-packages/scikit_build_core/_shutil.py", line 71, in _run
#0 54.02 return subprocess.run(
#0 54.02 File "/usr/lib/python3.10/subprocess.py", line 503, in run
#0 54.02 with Popen(*popenargs, **kwargs) as process:
#0 54.02 File "/usr/lib/python3.10/subprocess.py", line 971, in __init__
#0 54.02 self._execute_child(args, executable, preexec_fn, close_fds,
#0 54.02 File "/usr/lib/python3.10/subprocess.py", line 1863, in _execute_child
#0 54.02 raise child_exception_type(errno_num, err_msg, err_filename)
#0 54.02 FileNotFoundError: [Errno 2] No such file or directory: 'ninja'
#0 54.02 [end of output]
#0 54.02
#0 54.02 note: This error originates from a subprocess, and is likely not a problem with pip.
#0 54.02 ERROR: Failed building wheel for llama-cpp-python
#0 54.02 Building wheel for openai-whisper (pyproject.toml): started
#0 54.25 Building wheel for openai-whisper (pyproject.toml): finished with status 'done'
#0 54.25 Created wheel for openai-whisper: filename=openai_whisper-20240930-py3-none-any.whl size=803338 sha256=3fe6a790d061e0fd0fb7f67fab76b6662233ee67d68b41f45ba25df64f21df59
#0 54.25 Stored in directory: /tmp/pip-ephem-wheel-cache-y4xjqtu_/wheels/dd/4a/1f/d1c4bf3b9133c8168fe617ed979cab7b14fe381d059ffb9d83
#0 54.25 Successfully built khoj docx2txt openai-whisper
#0 54.26 ERROR: Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based projects
#0 54.26 Failed to build llama-cpp-python
------
```

Here's the `pyproject.toml` it's using to build: [link](https://github.com/khoj-ai/khoj/blob/master/pyproject.toml).

You can see the full error logs [in the GitHub Action workflow](https://github.com/khoj-ai/khoj/actions/runs/11990010386/job/33428489315).

I noticed the ninja project had a release recently, but the error is still consistent if I downgrade ninja to `1.11.1.1`.

Our workflow has been running smoothly, and this is the first time we encountered the error (about two hours ago, ~1:00 PM PST). Any help is much appreciated 🙏🏾.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.