首页 文章

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

提问于
浏览
0

我使用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_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 ,错误信息是:

回溯(最近一次调用最后一次):文件“data_processing_gui.py”,第12行,在文件“c:\ users \ fanyu \ anaconda3 \ lib \ site-packages \ PyInstaller \ loader \ pyimod03_importers.py”中,第631行, exec_module exec(bytecode,module.dict)文件“site-packages \ radiomics__init __ . py”,第15行,在文件“c:\ users \ fanyu \ anaconda3 \ lib \ site-packages \ PyInstaller \ loader \ pyimod03_importers.py”中,第631行,在exec_module exec(bytecode,module.dict)文件“site-packages \ radiomics \ imageoperations.py”,第6行,在文件“c:\ users \ fanyu \ anaconda3 \ lib \ site-packages \ PyInstaller \ loader中\ pyimod03_importers.py“,第631行,在exec_module exec(bytecode,module.dict)文件”site-packages \ pywt__init __ . py“,第17行,在文件”c:\ users \ fanyu \ anaconda3 \ lib \ site-packages中\ PyInstaller \ loader \ pyimod03_importers.py“,第631行,在exec_module exec(bytecode,module.dict)文件”site-packages \ pywt_functions.py“,第17行,在文件”c:\ users \ fanyu \ anaconda3 \ lib中\ site-packages \ PyInstaller \ loader \ pyimod03_importers.py“,第714行,在load_module modu中le = 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程序来测试它,它运行正常 .

我已经尝试了很多但是无法解决它,所以我在这里寻求帮助,如果有人能给出任何建议,我将不胜感激 .

1 回答

  • 1

    我在以下网站找到了我的问题的解决方案:

    https://stackoverflow.com/questions/47607315/modulenotfounderror-no-module-named-pandas-libs-tslibs-timedeltas
    

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

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

    hiddenimport=["pywt","pywt._estentions._cwt"]
    

    然后使用此文件生成您的exe文件:

    pyinstaller my.spec
    

相关问题