【发布时间】:2013-07-09 05:06:08
【问题描述】:
我最近使用 Python 和 Tkinter 的 GUI 为我的祖父编写了一个相当简单的程序,它非常适合他将使用它的用途。但是,当然还有丑陋的控制台输出窗口。我只需将文件的扩展名从 .py 更改为 .pyw 就成功地摆脱了它。当我使用 PyInstaller 冻结它时,它又重新出现了!我有什么办法可以解决这个问题吗?
提前致谢。
【问题讨论】:
标签: python pyinstaller
我最近使用 Python 和 Tkinter 的 GUI 为我的祖父编写了一个相当简单的程序,它非常适合他将使用它的用途。但是,当然还有丑陋的控制台输出窗口。我只需将文件的扩展名从 .py 更改为 .pyw 就成功地摆脱了它。当我使用 PyInstaller 冻结它时,它又重新出现了!我有什么办法可以解决这个问题吗?
提前致谢。
【问题讨论】:
标签: python pyinstaller
只需添加--noconsole 标志:
$ python pyinstaller.py --noconsole yourprogram.py
您可能还想使用--onefile,它会创建一个.exe 文件而不是文件夹。
【讨论】:
python pyinstaller.py MYCODE.pyw,它会为我完成其余的工作,包括制作 .spec 文件。我需要在某处中断程序并执行此行吗?如果有,怎么做?
【讨论】:
os.system('exit') 会起作用,还是会关闭程序?
--no-console 开关对 *NIX 系统没有任何影响。
这是搜索此信息时首先出现的内容之一,因此我想添加我在 pyinstaller 3.2 版中找到的内容。如果您已经通过运行打包了脚本
pyinstaller --onefile your_script.py
或类似的,您可以编辑 your_script.spec 文件以摆脱控制台。
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='main',
debug=False,
strip=False,
upx=True,
console=True )
只需将控制台值更改为 False。然后运行:
pyinstaller your_script.spec
此外,如果您对代码进行了更改,请运行上述命令以使它们反映在 your_script.exe 中。我发现这对于调试各种其他问题很有用。
【讨论】:
Pyinstaller -F --noconsole yourfilename.pyw
这将创建一个 .exe 文件
Pyinstaller --noconsole yourfilename.pyw
使用它,您将获得 .exe 文件以及文件夹中的所有 .dll 和其他必要文件。
【讨论】:
这个命令很好用
pyinstaller -F -w yourfilename.py
这会隐藏黑色的控制台窗口。
【讨论】: