--noconsole不适用于Pyinstaller

时间:2018-07-11 17:18:14

标签: python pyinstaller wkhtmltopdf

当我使用python myprogram.py运行程序时,它会按预期运行,并且不会弹出命令提示符。当我使用pyinstaller myprogram.py -F --noconsole创建可执行文件时,将弹出一个空白命令提示符。该命令提示符的标题是myprogram.py中使用的wkhtmltopdf.exe程序的位置。我不认为问题出在wkhtmltopdf上,尽管我运行python myprogram.py时命令提示符没有出现。我认为这与pyinstaller有关,但我认为使用--noconsole选项可以防止这种情况。我还尝试了--windowed。

3 个答案:

答案 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)

noconsolewindowed 选项在我的 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 语句的其余部分,因此它错过了选项。