头部背景图

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

:soogor 2022-08-20 10:34:28 :36
例如:snownlp 用pyinstaller 打包时就出现和stopwords.txt相关的找不到文件fileNotefoundError: no such file or directory ...c:\\admin\appdata\\lacal\\temp\\_mei186082\\snownlp\\nomal\\stopwords.txt问题分析:出现这种文件很明显是文件没有找到,但是c盘

例如: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")

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

缺点:

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

 

本文编辑:soogor
暂无评论,期待你的首评
jieba 的分词模式代码介绍

[Python]jieba 的分词模式代码介绍

​ 全模式: jieba默认为精确模式,正常采用精确模式如下: 精确模式: 对比之下可以得出,全模式和搜索引擎模式都可以将文字的多种词语结果都给调用出来...
2022年7月21日 08:34
jieba paddlepaddle-tiny 飞桨模式安装失败原因解读

[Python]jieba paddlepaddle-tiny 飞桨模式安装失败原因解读

最近在一案例当中需要使用paddlepaddle-tiny,但是发现安装不成功。case复现如下:case.py# 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; ...
2022年7月21日 08:23
Python文章分词、情感分析工具——SnowNLP常见用法

[Python]Python文章分词、情感分析工具——SnowNLP常见用法

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理...
2022年4月26日 05:48
Copyright © 2022 All Rights Reserved 山东上格信息科技有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.