首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pyinstaller来打包python程序,并且有一个"NoModuleFindError“

使用pyinstaller来打包python程序,并且有一个"NoModuleFindError“
EN

Stack Overflow用户
提问于 2018-03-12 09:43:11
回答 1查看 5.6K关注 0票数 0

我使用pyinstaller将我的python程序打包到可执行程序(Exe)中。

我的程序版本:

Pyinstaller :3.3.1

Python :3.6.1 Windows:10-10.0.16299-SP0

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

我使用这个命令来打包我的python程序(名称是data_processing_gui.py):

代码语言:javascript
复制
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(字节码,模块.dict)文件“site-packages\radiomics_init__..py”,第15行,文件"c:\users\fanyu\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py",中第631行,在exec_module exec(字节码、模块.dict)文件中,“site-packages\radiomics\ImageOpers.py”,第6行,在 文件"c:\users\fanyu\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py",第631行,在exec_module exec(字节码、模块.dict)文件“site-packages\pywt__init__..py”中,第17行,在文件"c:\users\fanyu\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py",行631中,在exec_module exec(字节码)中文件“site-\pywt_functions.py s.py”,第17行,文件第714行,load_module模块=loader.load_module(全名)文件“pywt/_/_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程序来测试它,它正确运行。

我试了很多次,但还是解决不了,所以我来这里寻求帮助,如果有人能给我建议,我会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-15 00:44:29

我在以下问题libs.tslibs.timedeltas'的答案中找到了解决问题的方法

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

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

代码语言:javascript
复制
hiddenimport=["pywt","pywt._estentions._cwt"]

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

代码语言:javascript
复制
pyinstaller my.spec
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49232117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档