Python pyinstaller打包成exe文件后执行失败FileNotFoundError

Python pyinstaller打包成exe文件后执行失败FileNotFoundError,第1张

概述在用pyinstaller打包(-F选项),如果用到的第三方库含有data文件,而pyinstaller又没有自带该第三方库文件的hook的时候,执行打包后的exe一般会报以下错误FileNotFoundError:[Errno2]Nosuchfileordirectory:'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\1\\_MEI54762

在用pyinstaller打包(-F 选项),如果用到的第三方库含有data文件,而pyinstaller又没有自带该第三方库文件的hook的时候,执行打包后的exe一般会报以下错误

fileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\adminI~1\\AppData\\Local\\Temp\\1\\_MEI54762\\jIEba\\dict.txt'
[20784] Failed to execute script bat_server

上面就是没把python库jIEba的dict.txt打包进来,导致了错误。

那么,解决问题也很简单,自己写个hook,然后放进pyinstaller的hooks里面即可。

hook文件的命名规范为: hook-【库名】.py,以结巴分词为例,即为hook-jIEba.py,然后简单敲入以下两行:

from PyInstaller.utils.hooks import collect_data_files datas = collect_data_files("jIEba")

 接下来,找到pyinstaller的hooks文件夹,大概位于:

python根目录\lib\site-packages\PyInstaller\hooks下,然后把hook-jIEba.py丢进去,如下图所示:

最后,回到项目根目录,用pyinstaller打包即可。(注意可能需要把build目录删了,使pyinstaller从头开始打包)

当看到pyinstaller的日志里使用了我们自定义的hook后,就万事大吉了。

 

PS:打包tushare的时候也有类似问题,下次可以直接用此法解决。 

总结

以上是内存溢出为你收集整理的Python pyinstaller打包成exe文件后执行失败FileNotFoundError全部内容,希望文章能够帮你解决Python pyinstaller打包成exe文件后执行失败FileNotFoundError所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1158993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存