Python pyinstaller打包“jieba” “snownlp”no sunch or directory解决办法,pyinstaller fileNotefoundError解决办法

:soogor 2023-10-28 16:57:10 :57

 

例如:snownlp 用pyinstaller 打包时就出现和stopwords.txt相关的找不到文件

fileNotefoundError: no such file or directory ...c:\\admin\appdata\\lacal\\temp\\_mei186082\\snownlp\\nomal\\stopwords.txt

问题分析:

出现这种文件很明显是文件没有找到,但是c盘路径那些又是一些临时文件,将这些东西打包肯定也没啥用.

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

FileNotFoundError: [Errno 2] No such file or directory: ‘c:\\admin\appdata\\lacal\\temp\\_mei186082\\snownlp\\nomal\\stopwords.txt’

所以我们可以考虑将完整包打包进exe

那如何将第三方库打包呢?

我们可以直接做一个hook库。如下:

解决过程:

找到pyinstaller的hooks文件夹,大概位于:python根目录\Lib\site-packages\PyInstaller\hooks下。比如我的路径就是:D:\Python310\Lib\site-packages\PyInstaller\hooks

这里面都是hook-【库名】.py

例:hook-jieba.py

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

例:hook-snownlp.py

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

这样在打包的时候就可以直接打包了。。

缺点:

打的包比只打包某个文件要大。。

本文编辑:admin
pyinstaller打包 ,jieba ,snownlp
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.