【问题标题】:How to see Python executable output in a cmd window?如何在 cmd 窗口中查看 Python 可执行文件输出?
【发布时间】:2018-07-01 10:15:33
【问题描述】:

我在 python 3.5 中编写了一个脚本。我使用 pyinstaller 制作了一个 .exe 文件。该脚本有一些打印语句,在执行期间会显示在控制台中。当我从命令提示符运行我的脚本时,我可以在我的 cmd 中看到所有消息,但是当我从 cmd 运行 .exe 文件时,我在命令提示符中看不到任何消息。有什么方法可以从 .exe 文件中查看命令提示符中的消息。

例如,假设下面是我的名为 abc.py 的脚本:

def sum():
   first = 5
   print('First number is {}'.format(first))
   second = 10
   result = first + second
   print('second number is {}'.format(second))
   print('Sum is = {}'.format(result))
 sum()

现在,当我从 cmd 运行此文件时,例如:python \pathto\abc.py,我可以看到 cmd 中的所有消息。现在,当我制作 .exe 并从 cmd 执行类似 \pathto\abc.exe 的操作时,我什么也看不到。有没有办法在 .exe 文件的 cmd 中看到 ,msgs?

【问题讨论】:

  • 基本上,我在 cmd 中看不到任何消息。我也设计了一个 gui,所以我确实看到了 gui 窗口,但在 cmd 中没有任何消息。
  • 显示你用来制作exe的命令
  • @simon 是的,它工作正常。没有错误。
  • @qwerty 这是我的命令:pyinstaller.exe --onefile --windowed abc.py 我从这里阅读了 pzinstaller 的文档:mborgerson.com/creating-an-executable-from-a-python-script 然后,我尝试通过删除 --windowed 创建 exe属性也是如此,但它对我不起作用。
  • @umair butt 在哪个操作系统上?您是否尝试过使用--console 而不是--windowed

标签: python command-line cmd exe


【解决方案1】:

首先感谢您的支持。我找到了解决方案。我正在使用: pyinstaller.exe --onefile --windowed myapp.py 生成我的 .exe 文件。从文档中我发现 --windowed 会阻止在应用程序运行时显示控制台窗口。如果您要发布非图形应用程序(即控制台应用程序),则不需要使用此选项。 因此,如果您使用以下命令生成 exe:

  pyinstaller.exe --onefile myapp.py 

然后通过 cmd 运行它,所有的 msgs 都会显示在你的 cmd 中。 注意:通过这种方式,您也可以使用命令行参数从 cmd 运行您的 exe。例如假设如果在上面的代码变量中:

first = sys.argv[1]

然后从 cmd 运行 exe 文件,例如:

/exe/路径 20

也可以。请记住,sys.argv 会生成一个字符串,因此在这种情况下,您需要将 20 转换为整数。

【讨论】:

    【解决方案2】:

    您的问题是您正在使用--windowed。 使用 --console 代替,它应该像正常打印一样!

    【讨论】:

    • 是的,这也有效。如果我不使用 --console 或 --windowed 那么它也可以正常工作。
    • @umairbutt 如果这是正确答案,应该被接受。
    • 我已经接受了,但由于我的声誉,这里没有显示。对不起。
    猜你喜欢
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2015-01-15
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多