更改 pyinstaller 可执行文件的 Stanza 模型目录

莱拉·坎波斯

我有一个应用程序,它使用自然语言处理来分析文本以查找关键字。我创建了一个可执行文件,它在我的计算机上运行良好。我已将其发送给朋友,但在他的计算机中出现错误:

Traceback (most recent call last):
  File "Main.py", line 15, in <module>
  File "Menu.py", line 349, in main_menu
  File "Menu.py", line 262, in analyse_text_menu
  File "Menu.py", line 178, in analyse_text_function
  File "AnalyseText\ProcessText.py", line 232, in process_text
  File "AnalyseText\ProcessText.py", line 166, in generate_keyword_complete_list
  File "AnalyseText\ProcessText.py", line 135, in lemmatize_text
  File "stanza\pipeline\core.py", line 88, in _init_
stanza.pipeline.core.ResourcesFileNotFoundError: Resources file not found at: C:\Users\jpovoas\stanza_resources\resources.json  Try to download the model again.
[26408] Failed to execute script 'Main' due to unhandled exception!

它正在resources.json他电脑中的一个文件夹中寻找即使我已经stanza使用 pyinstaller添加为隐藏导入。

我正在使用另一种语言的模型,而不是英语的默认模型。该模型位于用户文件夹内的文件夹中。

问题是,我不希望最终用户必须单独下载模型。

我已经设法--add-data C:\Users\Laila\stanza_resources\pt;Stanza"在创建可执行文件包含模型文件夹

它仍然在stanza_resources文件夹中查找模型的 json 文件,该文件夹应该位于使用该程序的任何人的 User 文件夹中。

我如何告诉节在生成的可执行文件夹中查找模型?

我可以只添加stanza.download("language")我的脚本吗?如果是这样,我如何更改节的模型下载文件夹?我希望将其下载到与可执行文件位于同一目录中的文件夹中。我怎么做?

谢谢

莱拉·坎波斯

编辑:可以通过执行以下操作来更改模型下载的位置:

stanza.download("pt", model_dir=...)

不过,这对我来说不是理想的解决方案,因为我想避免再次下载模型。

我通过model_dir在制作管道时参数传递一个值来解决它

npl = stanza.Pipeline(lang='Pt', model_dir='.\\Stanza')

在名为 Stanza 的文件夹中,我放置了模型文件夹(在本例中为“pt”)和 resources.json 文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章