Python 打包 出现 NameError: name 'help' is not defined 问题记录

Python 打包 出现 NameError: name 'help' is not defined 问题记录

Python 打包 出现 NameError: name ‘help’ is not defined 问题记录

最近项目写了一个python 程序 Windows pycharm上面用python3 运行,正常不报错,然后用pyinstaller 打包exe程序,双击运行程序直接崩溃,把程序放在控制台上,运行显示 NameError: name ‘help’ is not defined

在这里插入图片描述
分析: 从报错可以知道 help 在site-packages\simpleeval.py 这个文件的 119行报错,报错类型没有找到help 的定义,那我们找到这个文件的这一行,看看能不能定位到help 的定义

在这里插入图片描述
在文件builtins.py 定位到了help 的定义 应该import 了

在这里插入图片描述
这个问题就有点奇怪了,明明找到这个定义,网络上搜索了 半天没有找到答案

解决办法 虽然不知道simpleeval.py 和builtins.py 文件的作用,考虑到源码中定位的help( )这个函数没有实际的功能,而且用python3 能直接运行我写的程序 那我用了个取巧的办法试试,就是在 文件simpleeval.py 的位置DISALLOW_FUNCTIONS = {type, isinstance, eval, getattr, setattr, help, repr, compile, open} 前面强行加一个help()的定义在这里插入图片描述
再次用pyinstaller 打包 打包的exe程序可以正常运行,程序暂时解决,然后把simpleeval.py 文件中的关于help()定义注释了,防止自己的临时方法对其他的程序打包有影响. 有遇到同样问题的同学,知道为什么会出现这个问题的留言一下.

发布了4 篇原创文章 · 获赞 0 · 访问量 78
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览