Python pyinstaller没有自动将依赖库打包进去,运行时提示找不到模块ModuleNotFoundError: No module named ‘PyQt5‘
Posted guangdeshishe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python pyinstaller没有自动将依赖库打包进去,运行时提示找不到模块ModuleNotFoundError: No module named ‘PyQt5‘相关的知识,希望对你有一定的参考价值。
问题
以前是可以正常打包运行的,后来打包后发现目录下少了很多dll文件,比如Qt5Core.dll
、Qt5Gui.dll
等,运行exe
提示ModuleNotFoundError: No module named 'PyQt5'
分析原因
- 由于打包时需要包含一些其他配置文件进去,所以需要修改
xx.spec
文件,于是打包时就使用命令pyinstaller -D xx.spec
,但是不管怎么打包总是出现找不到PyQt5
的问题 - 于是尝试使用最原始的命令
pyinstaller -D xx.py
打包发现又是正常的,于是对比了该命令自动生成的xx.spec
文件和我之前使用的xx.spec
文件,发现只有datas=[]
这个地方不一样 datas=[]
这个地方是用来配置我们打包进去的额外文件,最近新增了一个需要打包进去的文件,于是把该文件去除掉后,使用pyinstaller -D xx.spec
命令重新打包后就正常- 于是怀疑该文件名中可能因为包含特殊符号下划线"_"导致的,果然改文件名去掉下划线后就正常了
解决办法
出现类似的问题很可能就是xx.spec
文件的改动引起的,需要仔细一步步排查
以上是关于Python pyinstaller没有自动将依赖库打包进去,运行时提示找不到模块ModuleNotFoundError: No module named ‘PyQt5‘的主要内容,如果未能解决你的问题,请参考以下文章