5

我有一个小应用程序,我正在尝试针对 Windows 机器构建。该程序创建一个 OpenVPN 连接。如果我构建程序并运行它,它首先会打开一个控制台作为程序输出。如果我将-w参数传递给 pyinstaller 以不使用附加的控制台构建它,则程序根本无法运行。它可以正常打开,但永远不会创建 vpn 连接。

使用控制台,一切都完美无缺。

我还为应用程序设置了一个基本日志记录,以查看我的代码可能在哪里停止并且没有写入任何内容。在我的程序上使用控制台会吐出各种日志。

我只是不知道为什么我的程序可以在控制台上完美运行,但没有控制台什么也不做。有任何想法吗?

4

2 回答 2

4

这个我自己来回答。确保您不打印任何内容,并将所有标准输出重定向到记录器、文件或其他任何内容,而不是控制台。

于 2013-03-16T00:33:21.557 回答
4

我遇到了类似的问题,但找不到任何用于控制台的打印/标准输出语句。我正在使用 subprocess.Popen 并重定向 stdout=subprocess.PIPE。我随后添加了 stderr=subprocess.STDOUT 和 stdin=subprocess.PIPE 并且我的程序正常工作。这个页面(Python subprocess.call() 在使用 pythonw.exe 时失败)子进程失败帮助我让它工作。

于 2015-11-14T20:53:58.587 回答