pyinstaller 打包生成exe之后运行提示‘no module name 'xxx'’错误

python 3.7

pyinstaller 3.4

具体情况:

pycharm中点击运行可成功执行,生成正确结果,没有报错。

双击run.py(程序运行的主文件),运行,可生成正确结果,没有报错。

pyinstaller打包生成exe后,双击exe文件,报错。

解决尝试:

get_log_inf.py 为自定义模块文件,与run.py放在同级文件夹下,理论上调用是没有问题的

在pycharm中也可以在run中正常跳转到get_log_inf文件,说明可以正常寻到get_log_inf文件,问题应该不是出在调用上

在get_log_inf.py中添加if __name__ == '__main__':并单独运行此py文件,发现报错,出现一个文件编码错误,(没有留图,大概意思就是UTF-8无法解码某个字符),在文件头添加# -*- encoding: gb2312 -*-,再次运行,无错误通过

再次打包exe,双击exe,正常运行生成正确结果,无错误。

问题解决!

总结:

可能是因为调用的缘故,编码错误这个问题被忽略掉了,在打包成exe之后,触发这个隐藏错误。

建议出现‘no module name 'xxx'’错误,先单独运行无法调用的py文件,检查是否有错。有错会出现调用失败。

咋子

原文地址:https://www.cnblogs.com/congyinew/p/9981854.html