我正在使用ACRCloud来识别音频文件,我已经使用tkinter构建了一个图形用户界面,并且我使用PyInstaller将代码冻结为.exe文件。然而,当我运行.exe文件时,我得到了这个错误:
ModuleNotFoundError: No module named 'acrcloud_extr_tool'如果我直接从脚本运行它,没有错误,它运行得很好。帮帮忙,好吗?我才刚刚起步。
发布于 2019-02-12 23:12:19
我解决了。因为它是一个二进制文件(扩展名为.pyd ),所以必须显式地添加到.spec文件中(请阅读pyinstaller文档)。我这么做了,它跑起来就像一个护身符。
发布于 2019-02-12 04:25:35
根据我使用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并将这些模块保存在C:\myProject\myModules中,然后将该命令更改为如下所示:
pyinstaller -p C:\myProject\myModules:C:\Users\yourName\AppData\Local\Programs\Python\Python36-32\Lib\site-packages "yourFileName.py"希望这能解决你的问题。
https://stackoverflow.com/questions/54638119
复制相似问题