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文件,检查是否有错。有错会出现调用失败。