目录
问题:
对多个py文件和多张图片进行pyinstaller打包时,报好几个错。
ImportError: cannot import name 'NoReturn'
ImportError: Unable to load module attribute
Failed to import module __PyInstaller_hooks_0_skimage_io required by hook for module
解决:
方法一:重新卸载并安装pyinstaller , 失败
方法二:从github上找到加强版的pyinstaller,复制hook文件到原python的site-package中,失败
方法三(成功):把以前环境的pyinstaller全卸载,在anaconda构建1个新的环境,安装好python代码所需要的第三方库,只要能跑通,再pyinstaller就能生成exe文件。
具体步骤:
1.在anaconda构建新环境,这里构建名为ceshi的3.6版本环境
2.激活环境
3.这里可能需要升级pip版本, 我是升级到pip==21.3.1,然后pip好项目所需的第三方库,别忘记pip个pyinstaller(我的是4.10版本)
4.跑通了项目后,直接cd到项目的目录下,进行pyinstaller命令即可。我的是多py文件和多图片,文件目录及命令如下。pyinstaller中主文件写在前面,其他py文件前加上-p,并且需使用命令
--hidden-import py文件名 。
pyinstaller -F -w app_test.py -p choose_model.py -p filteroriginui.py -p filterui.py -p main_windows.py -p memory_pic.py -p pictopy.py -p picture_show.py -p single_predict.py -p ui.py --hidden-import choose_model --hidden-import filteroriginui --hidden-import filterui --hidden-import main_windows --hidden-import memory_pic --hidden-import pictopy --hidden-import picture_show --hidden-import single_predict --hidden-import ui
最终会生成两个文件夹和一个spec。exe文件就会生成在dist文件夹中。
!!在跑exe时注意它的目录问题,我这里放在dist中就跑错了,这个需根据代码中的路径对应。
虚拟环境生成过程中可能会报的错:
1.
AttributeError: 'version_info' object has no attribute '__version__'
参考此链接解决的:
AttributeError: ‘version_info’ object has no attribute ‘__version__’_abury418的博客-CSDN博客
2.以下错误大概率是matplotlib版本问题,可以降低matplotlib版本到3.1.0及以下
ImportError: Unable to load module attribute
如何在exe中显示图片?
参考链接: