使用pyinstaller打包python程序,有一个;“NoModuleFindError”;

使用pyinstaller打包python程序,有一个;“NoModuleFindError”;,python,pyinstaller,Python,Pyinstaller,我使用pyinstaller将python程序打包成可执行程序(exe) 我的程序版本: Pyinstaller:3.3.1 Python:3.6.1 Windows:10-10.0.16299-SP0 我可以在命令行窗口中使用命令“python data_processing_gui.py”运行data_processing_gui.py文件,而不会出现任何错误 我使用该命令打包python程序(名称为data\u processing\u gui.py): 当我在windows的命令行

我使用pyinstaller将python程序打包成可执行程序(exe)

我的程序版本:

Pyinstaller:3.3.1

Python:3.6.1 Windows:10-10.0.16299-SP0


我可以在命令行窗口中使用命令“python data_processing_gui.py”运行data_processing_gui.py文件,而不会出现任何错误


我使用该命令打包python程序(名称为data\u processing\u gui.py):


当我在windows的命令行窗口中运行上面的代码时没有错误,但是当我运行目标程序(data_progressing_gui.exe)时,有一个
ModuleNotFindError
,错误信息是:

回溯(最近一次调用last):文件“data\u processing\u gui.py”, 第12行,在文件中 “c:\users\fanyu\anaconda3\lib\site packages\PyInstaller\loader\pyimod03\u importers.py”, 执行模块中的第631行 exec(字节码,模块.dict)文件“site packages\radiomics\uuuu init\uuuu.py”,第15行,在文件中 “c:\users\fanyu\anaconda3\lib\site packages\PyInstaller\loader\pyimod03\u importers.py”, 执行模块中的第631行 exec(字节码,模块dict)文件“site packages\radiomics\imageoperations.py”,第6行,在
文件 “c:\users\fanyu\anaconda3\lib\site packages\PyInstaller\loader\pyimod03\u importers.py”, 执行模块中的第631行 exec(字节码,模块.dict)文件“site packages\pywt\uuuuu init\uuuuuu.py”,第17行,在文件中 “c:\users\fanyu\anaconda3\lib\site packages\PyInstaller\loader\pyimod03\u importers.py”, 执行模块中的第631行 exec(字节码,模块.dict)文件“site packages\pywt_functions.py”,第17行,在文件中 “c:\users\fanyu\anaconda3\lib\site packages\PyInstaller\loader\pyimod03\u importers.py”, 第714行,在load_模块中 module=loader.load_模块(全名)文件“pywt/_extensions/_pywt.pyx”,第1行,在init pywt.\u extensions.\u pywt (pywt_extensions_pywt.c:31281)ModuleNotFoundError:没有名为 “pywt._extensions._cwt”[7564]无法执行脚本 数据处理图形用户界面

程序似乎找不到指定的包路径(pywt.\u extensions.\u cwt),但是,我已经在pyinstaller的参数列表中添加了该路径

起初,我认为我的pyinstaller可能有问题,所以我尝试重新安装它。然后我编写了一个简单的python程序来测试它,它运行正常


我已经尝试了很多,但就是解决不了问题,所以我来这里寻求帮助,如果有人能给我任何建议,我将不胜感激。

我在以下问题的答案中找到了解决问题的方法

我无法解释为什么,但它确实解决了我的问题

解决办法是: 使用pyinstaller生成“.spec”文件后,将缺少的模块添加到“.spec”文件中的“hiddenimport=[]”,如下所示:

hiddenimport=["pywt","pywt._estentions._cwt"]
然后使用此文件生成exe文件:

pyinstaller my.spec

我在以下问题的答案中找到了解决问题的方法

我无法解释为什么,但它确实解决了我的问题

解决办法是: 使用pyinstaller生成“.spec”文件后,将缺少的模块添加到“.spec”文件中的“hiddenimport=[]”,如下所示:

hiddenimport=["pywt","pywt._estentions._cwt"]
然后使用此文件生成exe文件:

pyinstaller my.spec