【小记】spacy 使用 pyinstaller 打包模型的正确方式

步骤一:

项目目录下新增一个 hook 文件,名字可以是 "hook-spacy.py":

from PyInstaller.utils.hooks import collect_data_files, collect_submodules, copy_metadata

# 收集并添加 spacy 模块数据
datas = collect_data_files('spacy', include_py_files=True)
hiddenimports = collect_submodules('spacy')

# 拷贝 spacy 的元数据,这对于找到模型路径很重要
datas += copy_metadata('spacy')

# 收集并添加 pkuseg 模块数据
datas += collect_data_files('spacy_pkuseg')

# 收集并添加模型数据
datas += collect_data_files('xx_ent_wiki_sm')
datas += collect_data_files('en_core_web_md')
datas += collect_data_files('zh_core_web_md')

 

spacy 模型建议使用 whl 包的形式安装,这样可以直接打包进EXE,就无需在发布目录附带外部模型数据文件且路径形式引入。即在代码中可以这样引入:

 

import xx_ent_wiki_sm
import en_core_web_md
import zh_core_web_md

npl = xx_ent_wiki_sm.load()
npl_en = en_core_web_md.load()
npl_zh = zh_core_web_md.load()

 

步骤二:

Make 命令当中增加参数:

pyinstaller --onefile --additional-hooks-dir=. main.py

版权声明:
作者:芯片烤电池
链接:https://www.airchip.org.cn/index.php/2024/04/17/spacy-to-pyinstaller/
来源:芯片烤电池
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
【小记】spacy 使用 pyinstaller 打包模型的正确方式
步骤一: 项目目录下新增一个 hook 文件,名字可以是 "hook-spacy.py": from PyInstaller.utils.hooks import collect_data_files, c……
<<上一篇
下一篇>>