繁体   English   中英

Pyinstaller - Python exe 运行时显示错误“无法执行脚本 pyi_rth_nltk”

[英]Pyinstaller - Python exe when run shows error “Failed to execute script pyi_rth_nltk”

我在 python 中开发了一个带有 GUI 的简单软件。 我实际上正在研究自然语言处理,我刚刚将整个 NLP 过程放在 GUI 中。

我尝试使用 Pyinstaller 将整个项目转换为 python 中的 exe 文件。 我成功地将它转换为 exe 文件,但是当我运行它时,它会显示一条类似这样的错误消息这是我的错误的图像

我已经解决了它,但是通过使用另一种将 py 转换为 exe 的方法,即 cx_Freeze。

我今天早些时候遇到了同样的问题,最后使用以下软件版本让它工作:

Python 3.6.8、nltk 3.5 和开发版 pyinstaller:

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip

此外,我使用了 scikit-learn 版本 0.21.1。

几天前,我在压缩到 EXE 时遇到了同样的问题。 当 PyInstaller 找不到要导入目录的库和模块时,通常会出现此问题。 但是我克服了这个问题,下面提到了明智的解决方案但繁琐的方法,

  1. 在 .spec 文件中使用console = True.spec脚本转换为 EXE,或者简单地说,在使用 System Argmuents 方法进行转换时不要添加--noconsole参数。(使用 CMD 执行 GUI)

  2. 成功构建文件后,go 到相应目录(dist 文件夹)并打开命令提示符

  3. 使用命令提示符运行 Exe 文件。

  4. 找到错误信息并进行相应的纠正。 例如,考虑以下错误消息,\\ vcomp140.dll \\sklearn\\libs目录中缺少 vcomp140.dll。

  5. 在此错误消息的末尾,您会发现Failed to load dynlib/dll ,因此,找到丢失的文件或程序。 说,这里我们有.libs\\vcomp140.dll

  6. 使用 C 驱动器中的 window 搜索栏查找vcomp140.dll

  7. 复制特定文件并粘贴到文件丢失的目录(在“dist”文件夹下)。 这里的目录是dist\\PyScriptToEXE\\sklearn\\.libs

MatplotlibDeprecationWarning:
The MATPLOTLIBDATA environment variable was deprecated in Matplotlib 3.1 and will be removed in 3.3.
  exec(bytecode, module.__dict__)
Traceback (most recent call last):
...
...
...
py3.7.egg\PyInstaller\loader\pyiboot01_bootstrap.py", line 169, in __init__
__main__.PyInstallerImportError: Failed to load dynlib/dll 'C:\\Users\\MOHAMM~1\\AppData\\Local\\Temp\\_MEI38242\\sklearn\\.libs\\vcomp140.dll'. Most probably this dynlib/dll was not found when the application was frozen.
[13968] Failed to execute script try
  1. 使用 CMD 再次执行这些步骤以消除每个错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM