我使用pyinstaller将我的python程序打包成可执行程序(exe)。
我的程序版本:
Pyinstaller:3.3.1
Python:3.6.1 视窗:10-10.0.16299-SP0
我可以使用命令" python data_processing_gui.py"运行data_processing_gui.py文件。在我的命令行窗口中没有任何错误。
我使用命令打包我的python程序(名称为data_processing_gui.py):
pyinstaller -F -p C:\Users\fanyu\Anaconda3\Lib;C:\Users\fanyu\Anaconda3\Lib\site-packages;C:\Users\fanyu\Anaconda3\Lib\site-packages\PyQt5\Qt\bin;C:\Users\fanyu\Anaconda3\Lib\site-packages\pydicom;C:\Users\fanyu\Anaconda3\Lib\site-packages\radiomics;C:\Users\fanyu\Anaconda3\Lib\site-packages\pywt;C:\Users\fanyu\Anaconda3\Lib\site-packages\pywt\_extensions;C:\Users\fanyu\Anaconda3\Lib\site-packages\tensorflow;C:\Users\fanyu\Anaconda3\Lib\site-packages\SimpleITK;C:\Users\fanyu\Anaconda3\Lib\site-packages\PIL;C:\Users\fanyu\Anaconda3\Lib\site-packages\pandas;C:\Users\fanyu\Anaconda3\Lib\site-packages\nrrd;C:\Users\fanyu\Anaconda3\Lib\site-packages\numpy -i C:\Users\fanyu\Desktop\work\package\image\doctor.ico data_processing_gui.py
当我在Windows上运行上面的代码时,没有错误。命令行窗口,但是当我运行目标程序(data_progressing_gui.exe)时,有一个ModuleNotFindError
,错误信息是:
Traceback(最近一次调用最后一次):File" data_processing_gui.py", 第12行,在文件中 " C:\用户\番禹\ anaconda3 \ lib中\站点包\ PyInstaller \装载机\ pyimod03_importers.py&#34 ;, 第631行,在exec_module中 exec(字节码,模块。字典)文件" site-packages \ radiomics__init __。py",第15行,在文件中 " C:\用户\番禹\ anaconda3 \ lib中\站点包\ PyInstaller \装载机\ pyimod03_importers.py&#34 ;, 第631行,在exec_module中 exec(字节码,模块。字典)文件" site-packages \ radiomics \ imageoperations.py",第6行,中
文件 " C:\用户\番禹\ anaconda3 \ lib中\站点包\ PyInstaller \装载机\ pyimod03_importers.py&#34 ;, 第631行,在exec_module中 exec(字节码,模块。字典)文件" site-packages \ pywt__init __。py",第17行,在文件中 " C:\用户\番禹\ anaconda3 \ lib中\站点包\ PyInstaller \装载机\ pyimod03_importers.py&#34 ;, 第631行,在exec_module中 exec(字节码,模块。字典)文件" site-packages \ pywt_functions.py",第17行,在文件中 " C:\用户\番禹\ anaconda3 \ lib中\站点包\ PyInstaller \装载机\ pyimod03_importers.py&#34 ;, 第714行,在load_module中 module = loader.load_module(fullname)文件" pywt / _extensions / _pywt.pyx",第1行,在init pywt._extensions._pywt中 (pywt_extensions_pywt.c:31281)ModuleNotFoundError:没有名为的模块 ' pywt._extensions._cwt' [7564]无法执行脚本 data_processing_gui
程序似乎无法找到指定的包路径(pywt._extensions._cwt),但是,我已经在pyinstaller的参数列表中添加了路径。
起初,我想我的pyinstaller可能有问题,所以我试图重新安装它。然后我编写一个简单的python程序来测试它,它运行正常。
我已经尝试了很多但是无法解决问题,所以我来这里寻求帮助,如果有人能给出任何建议,我将不胜感激。
答案 0 :(得分:1)
我在以下问题ModuleNotFoundError: No module named 'pandas._libs.tslibs.timedeltas'
的答案中找到了我的问题的解决方案我无法解释原因,但它确实解决了我的问题。
解决方案是: 使用pyinstaller生成“.spec”文件后,将缺少的模块添加到“hiddenimport = []”的“.spec”文件中,如下所示:
hiddenimport=["pywt","pywt._estentions._cwt"]
然后使用此文件生成您的exe文件:
pyinstaller my.spec