我有一个小应用程序,我试图建立对Windows机器。该程序创建一个OpenVPN连接。如果我构建程序并运行它,它首先打开一个控制台作为程序输出。如果我将-w
参数传递给pyinstaller,而不是在附加控制台的情况下构建它,则程序根本无法运行。它打开了,但永远不会创建vpn连接。
使用控制台一切都很完美。
我还有一个应用程序的基本日志记录,以查看我的代码可能停止的位置,并且没有任何内容写入。在我的程序上使用控制台会发出各种日志。
我只是不知道为什么我的程序可以通过控制台完美地执行,但没有一个也无所事事。有什么想法吗?
答案 0 :(得分:4)
自己回答这个问题。确保您不打印任何内容,并将所有标准输出重定向到记录器,文件或其他任何内容,而不是控制台。
答案 1 :(得分:4)
我遇到了类似的问题,但无法找到任何打印/ stdout语句进入控制台。我正在使用subprocess.Popen并重定向stdout = subprocess.PIPE。我随后添加了stderr = subprocess.STDOUT和stdin = subprocess.PIPE,我的程序工作正常。关于子流程故障的这个页面(Python subprocess.call() fails when using pythonw.exe)帮助我实现了它。