很可惜,pyinstaller不是万能的

2023-10-02 22:52

本文主要是介绍很可惜,pyinstaller不是万能的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        近期活不算少,但是真正新的东西很少,基本都是做些相似的功能,所以有精力想想之前悬而未决的问题,比如前两天写的加快软件启动速度的探索,这几天又想起一个之前没有解决的问题,这个问题之前也在博客写过,就是用candas解析blf的功能,当时在没打包之前测试功能都是没问题,但是一打包就会报缺dll,当时没搜到特别准确的答案,后来主观判断是库冲突,但谁知道pyinstaller报错的信息其实是很准确的,就是缺dll,只不没具体报是缺什么dll,导致我当时认为它的报错有问题,不准确。

        本来我也没想解决这个问题,因为之前只有在用candas解析blf出现了这个问题,后来我用底层包代替以后,就没问题了,也就没再深究,结果近期新加一个功能,依赖sklearn,也是一样的报错,才不得不想办法解决。

        这次呢,我没有按之前的想法直接百度,而是顺藤摸瓜,它报什么错,我就从哪里排查,它不是报缺dll吗,那我就看到底缺什么dll,于是我就搜怎么查pyd的依赖,一般情况都是c/c++编译的包会报缺dll的问题,纯python的肯定不会,结果搜到一个工具,dependencywalker,直接把pyd包丢进去就行,带问号的就是缺的dll,但是有些是误报,比如名字里带api-xx的,一般不用管,有了这个工具以后,分析就能往下进行了,我下载了软件,把包丢进去,过了几分钟,果然找到了缺失的dll,然后我就想看看到底是我真的没有这个dll,还是pyinstaller没打包进去,我在site-packages里一搜,发现真是pyinstaller没打包进去,这个dll在一个叫scipy.libs的文件夹里,唉,也行吧,pyinstaller也不是神,它也不知道,scipy还会有个这么个lib文件夹,因为正常这种依赖都会包含在包里面,它这个文件居然是和包文件夹是同级的,具体原因就不清楚了。

        至此,这个问题算是解决了,总结来说就是,在某些特殊情况下,pyinstaller在打包的时候,会漏掉一些dll或者pyd,但是具体是哪些需要我们自己分析,这里我总结一般报这种缺dll或pyd有两种错误,如果是缺dll,它会报load dll failed,如果是缺pyd,它会报no module found类似的错误,这两个报错的解决方式是不一样的,缺dll的话,需要配置一个文件复制,就是直接把放dll的文件夹或者dll拷过来,而缺module的话,可以直接配个hidden-imports,里面写缺失的那个模块的绝对路径类似于sklearn._xxxx.xxx.xxx,这样它就会自动搜到,然后把相应的pyd复制过来。

        另外这次排查问题得到的一个经验就是,pyinstaller的报错基本是准确的,首先要确定排查的方向,方向错了再怎么花时间也是没用,就按它报错的方向找就可以,进行不下去可以找解决你阻碍的方法,而不是换方向,如果实在找不到再换方向,这样才可能把问题解决。

这篇关于很可惜,pyinstaller不是万能的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/88

相关文章

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

PyInstaller问题解决 onnxruntime-gpu 使用GPU和CUDA加速模型推理

前言 在模型推理时,需要使用GPU加速,相关的CUDA和CUDNN安装好后,通过onnxruntime-gpu实现。 直接运行python程序是正常使用GPU的,如果使用PyInstaller将.py文件打包为.exe,发现只能使用CPU推理了。 本文分析这个问题和提供解决方案,供大家参考。 问题分析——找不到ONNX Runtime GPU 动态库 首先直接运行python程序

Marsview这么好用?快速搭建后台不是梦

Marsview竟然这么好用?快速搭建后台不是梦! 还在为项目开发而焦头烂额吗?别再纠结了,Marsview来了!这个面向后台管理系统的低代码平台,不仅让你轻松搭建项目,还能让你成为团队中的“流量担当”。本文将带你了解 Marsview 的核心功能、技术架构,以及如何快速上手。 软件简介 Marsview 是一款专为中后台管理系统设计的低代码可视化平台,能够帮助开发者快速完成项目搭建和

20190315 把整理和培养自己当作一生的事业,而不是局限在找工作拿offer。

把整理和培养自己当作一生的事业,而不是局限在找工作拿offer,做有本事的人。 来东南读研半年了,明显感觉自己掌握的不过是书本知识级别的中上水平,垃圾收集器这些的只知道背面经,靠脑子硬记,缺乏整理和系统,一头浆糊。 现在一边做实训这个烂项目,一边刷面经,一边刷剑指offer,想投些大公司的实习,又觉得还没准备好,看着各 种面经,都能说个大概,但明显感觉到自己知识的不体系和不深入,**做的项目

不同饭局,如何说开场白才能打开氛围?教你一个万能公式

在人情社会中,饭局不仅是吃饱饭的场合,更是人际交往、情感交流的重要平台。无论是家庭聚会、商务宴请、朋友相聚还是同事联谊,一个恰当的开场白都能迅速打破沉默,营造温馨和谐的氛围。 针对现实生活中最常见的四种饭局,酱酒亮哥教你一个万能开场白公式,这个公式分为四步,当然,不是一步不落的照搬,需要灵活应用,挑其中的两步、三步就行了,只要打开氛围,我们的目的也就达到了。接下来我们一起学习一下,希望你在不同的

OpenAI澄清:“GPT Next”不是新模型。

不,”GPT Next” 并不是OpenAI的下一个重要项目。 本周早些时候,OpenAI 日本业务的负责人长崎忠男在日本 KDDI 峰会上分享了一场演讲,似乎在暗示一个名为 “GPT Next” 的新模型即将出现。 但OpenAI的一位发言人已向Mashable证实,幻灯片中用引号括起来的”GPT Next”一词只是一个假设性占位符,旨在表明OpenAI的模型如何随着时间呈指数级进化。发言人

去 IOE 的本质不是 PR 砸场,而是云端再造

「青云一直有一个目标,就是要建立一朵更好的云,全模云的推出也标志着我们在实现这个目标上往前走了一大步。」 本文由青云QingCloud CTO 甘泉的演讲内容整理而来,共 2628 字,8 图,阅读大概需要 7 分钟。 青云QingCloud 如何解决「敏态」问题 先谈谈传统业务的 IT 部署模式,基本上都是刀片机+存储柜的模式,它们都是真实的物理机,上图密密麻麻的是刀片机,右边是存

cmd命令无法使用的情况(显示该命令不是内部或外部命令)

CMD 命令无法使用显示不是内部或外部命令,也不是可运行的程序或批处理文件。 问题所在:就是环境变量导致无法使用 重新配置环境变量    (注意是“用户变量”!而不是“系统变量”) 需添加环境变量如下 %SystemRoot%\system32%SystemRoot%%SystemRoot%\System32\Wbem%SYSTEMROOT%\System32\WindowsPo

大数据只是听起来唬人?其实啥也不是。

点击上方蓝色字体,选择“设为星标” 回复”面试“获取更多惊喜 各位读者大佬们晚上好。 前两天一个读者找到我,问了一些问题。想来大家都是同龄人,虽然素不相识,但是我想起来我前几年刚毕业的时候,大概也是怀揣这样的问题,进入到了这么一个行业。 这个同学的问题大概也是很多新手同学的疑问罢。 这位同学在学校一直学习的是Java后端的工作,「然后现在做实时流平台,岗位是Java大数据,工作一年半了快,但