pyinstaller对“ builtins.help”有什么作用

问题描述

我正在尝试使用PyInstaller构建一个简单的Python交互式控制台应用程序。

我希望Python help()可用,但是PyInstaller似乎以某种方式更改了builtins的内容并删除了帮助。

这是一个打开Python窗口的简单脚本。当我直接在Windows命令提示符中运行此脚本时,可以从交互式会话访问help()

import code
        
code.InteractiveConsole().interact()

但是,如果我通过以下方式构建可执行文件

PyInstaller test.py

并运行它,help不可用。当我查看builtins的内容时,我发现它不包含在内。

我在Windows 10上,使用最新的Python 3.8版本。

更新:由于以下Nico的建议,以下代码恢复了内置quit()exit()copyright()函数,这些函数已被pyinstaller删除。 / p>

import code

import builtins
if not hasattr(builtins,'help'):
    import _sitebuiltins

    if os.sep == '\\':
        eof = 'Ctrl-Z plus Return'
    else:
        eof = 'Ctrl-D (i.e. EOF)'

    builtins.quit = _sitebuiltins.Quitter('quit',eof)
    builtins.exit = _sitebuiltins.Quitter('exit',eof)
        
    builtins.help = _sitebuiltins._Helper()

    builtins.copyright = _sitebuiltins._Printer("copyright",sys.copyright)   
    
code.InteractiveConsole().interact()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)