Pyinstaller - Python 当 运行 显示错误 "Failed to execute script 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 文件,但是当我 运行 它时,它会显示类似这样的错误消息 This is the image of my error

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

Python 3.6.8、nltk 3.5 和 pyinstaller 的开发版本:

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

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

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

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

  1. .spec 文件中使用 console = True 将 Python 脚本转换为 EXE 或者为了简单起见,在使用转换时不要添加 --noconsole 参数系统参数方法。(使用 CMD 执行 GUI)

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

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

  4. 找到错误信息并进行相应的修改。例如,考虑以下错误消息,vcomp140.dll is missing from \sklearn\libs directory.

  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 再次执行这些步骤以消除每个错误。