【问题标题】:--noconsole not working with Pyinstaller--noconsole 不适用于 Pyinstaller
【发布时间】:2018-07-11 17:18:13
【问题描述】:

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

【问题讨论】:

  • 您是否尝试过使用-w 标志来代替?什么 Python 和 Pyinstaller 版本?也尝试在-F 之前使用-w 标志,例如pyinstaller myprogram.py -w -F
  • 我使用的是 Python 3.6.5 版和 Pyinstaller 3.3.1 版。我只是使用pyinstaller myprogram.py -w -F 重新运行它,命令提示符仍然弹出
  • 使用 PyInstaller 3.4 为我工作。我的程序使用 PySide2 并显示 GUI 窗口。如果没有 -w 标志,则会显示 GUI 和控制台窗口。有了它,只有 GUI。

标签: python pyinstaller wkhtmltopdf


【解决方案1】:

当您在项目上运行 PyInstaller 时,是否还会出现 .SPEC 文件?

如果是这样,编辑 .SPEC 文件的 exe 字段,如下所示:

exe = EXE(
      ...,
      console=False,
      ...
      )

然后在 .SPEC 文件上运行 PyInstaller。

如果之前没有出现 .SPEC 文件,请尝试在不带任何参数的项目上运行 PyInstaller(所以只需 pyinstaller myProgram.py)。应该会出现一个 .SPEC 文件,您可以按上述方式对其进行编辑,然后重新运行 PyInstaller。

【讨论】:

  • 我第一次运行它时出现了一个 .SPEC 文件,并且控制台已经设置为 False。我仍然继续在 .SPEC 文件本身上运行 pyinstaller,但命令提示符仍然出现。当我在 .SPEC 文件上运行 pyinstaller 时,是在与我在程序本身(dist 文件夹)上运行它时在同一位置创建的可执行文件?
  • @Delphinidae 是的,可执行文件在 dist/myProjectName 文件夹中。
【解决方案2】:

这是我的建议: 注释掉所有打印语句。 保持简单,像这样:

pyinstaller --onefile  --noconsole <filename>.py

【讨论】:

    【解决方案3】:

    在我的 Windows 10 机器上使用 noconsolewindowed 选项时遇到了很多麻烦。

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

    【讨论】:

      猜你喜欢
      • 2021-10-24
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 2014-08-18
      • 2021-04-04
      相关资源
      最近更新 更多