在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

>>>

至此,完毕

相关推荐
WL_Aurora19 小时前
Python推导式与生成器
python
高洁0119 小时前
AI技术分享:如何做好职场内部技术培训
python·深度学习·知识图谱
E_ICEBLUE19 小时前
使用 Python 在 PowerPoint 中添加或移除背景(图像与颜色)
python·powerpoint
研究点啥好呢19 小时前
华为数据分析工程师面试题精选:10道高频考题+答案解析
python·sql·面试·求职招聘
财经资讯数据_灵砚智能19 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月29日
人工智能·python·信息可视化·自然语言处理·ai编程
AI玫瑰助手19 小时前
Python基础:输入input与输出print函数详解
开发语言·windows·python
郝学胜-神的一滴19 小时前
干货版《算法导论》 02 :算法效率核心解密
java·开发语言·数据结构·c++·python·算法
WL_Aurora19 小时前
Python 算法基础篇之回溯
python·算法