首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
人工智能
›
人工智能
›
llama-cpp-python 程序 Pyinstaller 打包后运行报错(Ru ...
返回列表
发新帖
llama-cpp-python 程序 Pyinstaller 打包后运行报错(RuntimeError: Failed
[复制链接]
发表于 2024-9-19 17:08:41
|
显示全部楼层
|
阅读模式
报错征象
本人基于 llama-cpp-python 构建了一个领域知识问答程序,并通过 Pyinstaller 打包成一个包含 .exe 运行文件的文件夹(记为 D)。
该 .exe 在本机(打包用的电脑,Windows 11)上运行正常,在把文件夹 D 拷贝到别的五台电脑(Windows 10)上后, .exe 在此中三台电脑上运行正常,但另两台报如下错误:
RuntimeError: Failed to load shared library 'D:\PPLocalChatbot\_internal\llama_cpp\llama.dll':
Failed to load dynlib/dll 'D:\\PPLocalChatbot\\_internal\\llama_cpp\\llama.dll'.
Most likely this dynlib/dll was not found when the application was frozen.
复制
代码
本机
配置
Windows 11
Python 3.8
llama-cpp-python 0.2.73
Pyinstaller 6.6.0
kernel32.dll 10.0.22621.3527
问题分析
如这里所示,通常 Pyinstaller 打包后的程序报错
无法找到/加载 xx 文件
,大概率是该文件在打包时未被 Pyinstaller 自动参加到指定文件夹引发的。然而这次不是,我已在打包
配置
文件 .spec 中通过 Analysis.binaries 将 llama.dll 参加到了正确文件夹;此外,其他三台电脑能正常运行也表明了 llama.dll 其实正位于正确的文件夹下。
考虑到有些电脑能跑,有些不行,那大概与电脑
版本
或环境有关;
在这里看到,该类报错也有大概是 .dll 所依靠别的 .dll 未在目的电脑上找到,可以采用 Dependencies 软件来检测 DLL 文件的依靠情况。
下图是本机利用 Dependencies 检测出的 llama.dll 的依靠情况,通过查找,发现除了 kernel32.dll,别的 DLL 文件均在打包后的文件夹 D 中存在。所以在运行 .exe 文件时,被调用的 llama.dll 会从目的电脑的 C:\Windows\System32 中调用 kernel32.dll。而这个 kernel32.dll 的
版本
在各电脑中都有所不同,因此 kernel32.dll 大概率就是问题所在。
问题解决
本机的 kernel32.dll 的
版本
为 10.0.22621.3527,再检察五台测试电脑上的 kernel32.dll 的版本,发现正常运行的电脑的 kernel32.dll 的版本均在 10.0.17***.**** 以上,而报错的电脑的 kernel32.dll 的版本均在 10.0.16***.**** 以下;
报错电脑的 kernel32.dll 版本(旧)
正常运行电脑的 kernel32.dll 版本
Google 后了解到 kernel32.dll 与 Windows 版本直接关联,所以不能直接通过复制粘贴来更新。因此我不考虑更改 kernel32.dll,而是更改 llama.dll 让其适配旧版的 kernel32.dll;
为了让 llama.dll 适配旧版的 kernel32.dll,最直接的方法就是:在旧版的 Windows 系统(即 kernel32.dll 版本低于 10.0.16***.****)中
配置
Python 环境,安装 llama-cpp-python(这一步必要 cmake 等环境,可参考官方
文档
),并对程序进行打包;
经测试,在旧版 Windows 上打包的程序同时也可在新版 Windows 上正常运行(新版向下兼容)。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
饭宝
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表