在llama-cpp-python中使用自己编译的llama.cpp,解决pip install llama-cpp-python报错

Q:在使用"pip install llama-cpp-python"安装llama-cpp-python出现错误,最后几句错误是这样的:

Building wheel for llama-cpp-python (pyproject.toml) ... error

ERROR: Failed building wheel for llama-cpp-python

Failed to build llama-cpp-python

ERROR: Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based projects

从日志看来,是编译llama.cpp的时候报的错。

A:自己手动编译llama.cpp,然后在llama-cpp-python使用自己编译的llama.cpp,至于生成的是CPU版的llama.cpp,还是GPU版的llama.cpp,需要在手动编译llama.cpp时配置。

步骤:

一、下载llama.cpp源码,并编译

bash 复制代码
git clone https://github.com/ggml-org/llama.cpp.git
cd /d llama.cpp

#以cuda版本为例,其他编译参考:https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

生成完成后,在build\bin\Release下会生成对应的二进制文件。

二、安装llama-cpp-python

打开powershell

bash 复制代码
#!PowerShell

#设置PowerShell权限(全局有效)
Set-ExecutionPolicy RemoteSigned
#【或】设置PowerShell权限(当前回话有效)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

#创建虚拟环境
Set-Location D:\llama_rag  #D:\llama_rag为你想部署rag的目录
python -m venv env_rag  #创建虚拟环境,名字为:env_rag
.\env_rag\Scripts\activate  #激活虚拟环境

#安装llama-cpp-python
$env:CMAKE_ARGS="-DLLAMA_BUILD=OFF"  #设置在安装llama-cpp-python的过程中不自动安装llama.cpp以使用自己编译的llama.cpp
pip install llama-cpp-python  #安装llama-cpp-python

三、关联手动编译的llama.cpp和llama-cpp-python

1.找到llama-cpp-python中的dll加载路径

bash 复制代码
#!PowerShell

#进入python环境
python
#输入代码:from llama_cpp import Llama

会有如下报错:

>>> from llama_cpp import Llama

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

File "D:\llama_rag\env_rag\Lib\site-packages\llama_cpp\init.py", line 1, in <module>

from .llama_cpp import *

File "D:\llama_rag\env_rag\Lib\site-packages\llama_cpp\llama_cpp.py", line 43, in <module>

_lib = load_shared_library(_lib_base_name, _base_path)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "D:\llama_rag\env_rag\Lib\site-packages\llama_cpp\_ctypes_extensions.py", line 50, in load_shared_library

os.add_dll_directory(str(base_path))

File "<frozen os>", line 1119, in add_dll_directory

FileNotFoundError: WinError 2 系统找不到指定的文件。: 'D:\\llama_rag\\env_rag\\Lib\\site-packages\\llama_cpp\\lib'

注意到提示加载dll时找不到指定文件,路径为:D:\llama_rag\env_rag\Lib\site-packages\llama_cpp\lib

2.到"D:\llama_rag\env_rag\Lib\site-packages\llama_cpp"目录下找到lib文件夹,如果没有lib文件夹则新建一个lib文件夹

3.把步骤一中生成的build\bin\Release下会生成对应的二进制文件拷贝到lib目录下

4.重新执行代码:from llama_cpp import Llama后,没有报错即表示已经应用的自己编译的llama.cpp

>>> from llama_cpp import Llama

>>>

至此,完毕

相关推荐
wuyk55513 小时前
Python 第三章:列表 List
服务器·开发语言·python
笨鸟先飞,勤能补拙14 小时前
从预测到决策:人工智能与机器学习的系统方法、工程闭环与现实边界
大数据·人工智能·windows·python·机器学习·密码学
MgArcher14 小时前
抖音a_bogus参数逆向实战:JSVMP环境模拟与Hook技术(2025最新)
javascript·爬虫·python
circuitsosk14 小时前
AI输出的“质检员”:构建智能体质量评估、异常检测与人工兜底的三层防线
人工智能·python·microsoft·正则表达式·langchain
要努力点14 小时前
Python入门第六课
开发语言·python
CTA终结者15 小时前
先用小策略练清条件和动作
人工智能·python
Bruce_Liuxiaowei15 小时前
从零到可运行:基于 Vue3 + FastAPI + DeepSeek-V3 的 AI 英语单词学习系统全栈实战
人工智能·python·学习·fastapi·全栈·智能体
ValhallaCoder15 小时前
Leetcode-hot100(2026.08.17)
python·算法·leetcode
W_3260015 小时前
Python-OpenCV图像像素与通道:通道拆分合并、深浅拷贝
图像处理·人工智能·python·opencv·机器学习
让你三行代码QAQ16 小时前
AI大模型开发核心名词速览
python