pyinstaller FileNotFoundError

原文链接:https://blog.csdn.net/liulina603/article/details/81808730

在用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丢进去,如下图所示:

从此网站转:https://blog.csdn.net/lucyTheSlayer/article/details/92795220

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

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

上一篇:【深入理解Java虚拟机】对象自我拯救


下一篇:Linux下查看占用CPU与内存最高的进程