我试图通过pyinstaller制作.exe文件时收到此错误-“ ModuleNotFoundError:没有名为'acrcloud_extr_tool'的模块”

时间:2019-02-11 19:56:04

标签: python pyinstaller acrcloud

我正在使用ACRCloud识别音频文件,我已经使用tkinter构建了GUI,并且正在使用PyInstaller将代码冻结为.exe文件。但是,当我运行.exe文件时出现此错误:

ModuleNotFoundError: No module named 'acrcloud_extr_tool'

如果我直接从脚本运行它,则没有错误,并且运行正常。请帮忙吗?我才刚开始。

2 个答案:

答案 0 :(得分:0)

根据我使用pyinstaller的经验,我需要在build命令中添加一个参数,以便pyinstaller知道在哪里查找模块。如果从命令提示符进行构建,则该行可能显示如下内容:

pyinstaller "yourFileName.py"  

但是,您可以向此命令添加其他命令以指定exe的构建方式-它具有自定义图标,基于控制台还是隐藏于控制台等。此外,您可以添加路径列表,告诉pyinstaller在哪里寻找您的模块,就像这样:

pyinstaller -p C:\theFolderWhereYourCustomModulesAreSaved:C:\Users\yourName\AppData\Local\Programs\Python\Python36-32\Lib\site-packages  "yourFileName.py"

请注意,这些文件路径周围没有引号,并且它们之间用冒号分隔。您的Python网站包的路径可能与我的不同,但是除了用户名外,我保留了所有相同的路径信息,因此请根据自己的计算机进行编辑。另外,我在示例中显示的第一个“伪”路径将是您是否编写了一些自己的模块并将其导入到项目中。例如,如果您的主项目保存在C:\ myProject中,但是您已经编写了一些模块,这些模块将被导入到程序中,如下所示:

import myCustomModule

并且THOSE模块保存在C:\ myProject \ myModules中,然后您可以将该命令更改为如下形式:

pyinstaller -p C:\myProject\myModules:C:\Users\yourName\AppData\Local\Programs\Python\Python36-32\Lib\site-packages  "yourFileName.py"

希望这可以解决您的问题。

答案 1 :(得分:0)

我解决了。由于是二进制文件(扩展名为.pyd),因此必须将其显式添加到.spec文件中(请阅读pyinstaller文档)。我做到了,它就像魅力一样。