Pyinstaller-运行时Python exe显示错误“;无法执行脚本pyi“rth”nltk“;

Pyinstaller-运行时Python exe显示错误“;无法执行脚本pyi“rth”nltk“;,python,nlp,nltk,pyinstaller,Python,Nlp,Nltk,Pyinstaller,我用python和GUI开发了一个简单的软件。我实际上正在研究自然语言处理,我刚刚将整个NLP过程放在GUI中 我尝试使用Pyinstaller将整个项目转换为python中的exe文件。我成功地将其转换为exe文件,但当我运行它时,它会显示类似以下内容的错误消息 今天早些时候,我也遇到了同样的问题,并最终使用以下软件版本使其正常工作: Python 3.6.8、nltk 3.5和pyinstaller的开发版本: pip install https://github.com/pyinstall

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

我尝试使用Pyinstaller将整个项目转换为python中的exe文件。我成功地将其转换为exe文件,但当我运行它时,它会显示类似以下内容的错误消息

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

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

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

此外,我使用了scikit学习版0.21.1。

我已经解决了这个问题,但是通过使用另一种将py转换为exe的方法,即cx\u冻结。

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

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

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

  • 使用命令提示符运行Exe文件

  • 找到错误信息并进行相应的纠正。例如,考虑下面的错误消息,<代码> vCO14140.dll <代码>在<代码> \SkPule\LIBS<代码>目录>

    中丢失。
  • 在该错误消息的末尾,您将发现加载dynlib/dll失败,因此,请查找缺少的文件或程序。比如说,这里有
    .libs\\vcomp140.dll

  • 使用C驱动器中的窗口搜索栏查找
    vcomp140.dll

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

  • 使用CMD再次执行这些步骤以消除每个错误

  • @gels_yt我用cx_freeze尝试过,它显示了以下错误:attributeerror类型对象'scipy.sparse.csgraph.\u shortest_path.array'没有属性'redu_cython'。。。你有这个问题吗?你是如何解决的?我也没有在stackoverflow中评论的经验。但是cx冻结是有效的,所以谢谢你的回答。至于“scipy.sparse.csgraph.\u shortest\u path.array”没有属性“redu\u cython”的错误,我只是像你告诉我的那样在setup.py添加了所需的包。之后,由于缺少模块,出现了一些错误,但没有什么是谷歌上的简单搜索无法修复的(一些文件需要重命名)。顺便说一句,最好将cx冻结选项作为主要问题的主要答案。
    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