当我使用python myprogram.py
运行程序时,它会按预期运行,并且不会弹出命令提示符。当我使用pyinstaller myprogram.py -F --noconsole
创建可执行文件时,将弹出一个空白命令提示符。该命令提示符的标题是myprogram.py中使用的wkhtmltopdf.exe程序的位置。我不认为问题出在wkhtmltopdf上,尽管我运行python myprogram.py
时命令提示符没有出现。我认为这与pyinstaller有关,但我认为使用--noconsole选项可以防止这种情况。我还尝试了--windowed。
答案 0 :(得分:0)
在项目上运行PyInstaller时,还会显示.SPEC文件吗?
如果是这样,请按如下方式编辑.SPEC文件的exe字段:
exe = EXE(
...,
console=False,
...
)
然后在.SPEC文件上运行PyInstaller。
如果以前没有出现.SPEC文件,请尝试在没有任何参数的项目上运行PyInstaller(因此只需pyinstaller myProgram.py
)。应该会显示一个.SPEC文件,您可以按上述进行编辑,然后重新运行PyInstaller。
答案 1 :(得分:0)
这是我的建议: 注释掉所有打印语句。 保持简单,就像这样:
pyinstaller --onefile --noconsole <filename>.py
答案 2 :(得分:0)
让 noconsole
或 windowed
选项在我的 Windows 10 机器上工作时遇到了很多麻烦。
我从 PyInstaller 生成的 .spec
文件开始。
不知何故,它有一行:
[('v', None, 'OPTION')],
部分中的 EXE
。
当我将其注释掉并添加非控制台和窗口选项时,它起作用了!
这是工作部分:
a.scripts,
# [('v', None, 'OPTION')],
exclude_binaries=True,
name='my program name',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=False,
console=False,
windowed=True)
我只能猜测有问题的行阻止了 PyInstaller 处理 EXE
语句的其余部分,因此它错过了选项。