twisted c.swwnProcess在cx_freeze'd时打开一个不需要的控制台

时间:2013-10-06 14:55:47

标签: python twisted

基本上它都在标题中,当我从控制台(在Windows上)运行代码时,子进程在不打开另一个控制台的情况下运行,但是当我从cx_freeze'd应用程序运行代码时,另一个控制台会打开。

我发现这个旧线程被建议使用FreeConsole(),它会在屏幕上闪烁控制器以闪烁,但我最终可以忍受它,不幸的是,如果我理解正确它应该从子进程调用。< / p>

http://twistedmatrix.com/pipermail/twisted-python/2007-February/014738.html

我还在Windows上对整个spawnProcess进行重新分解时发现了这张票(7yo),但显然它从未发生过:

http://twistedmatrix.com/trac/ticket/2415

我无法控制子进程的代码,所以做一些事情遗憾的是不是一个选项,但即使我做了这个过程我正在产生它是一个控制台应用程序,我相信FreeConsole()无法被调用那里或过程将终止。

1 个答案:

答案 0 :(得分:0)

这可能是Twisted中的错误,但可能是cx_Freeze中的错误。

使用Python从GUI运行代码时会发生什么,但不涉及cx_Freeze?如果安装了Python,只需将代码放入.pyw文件并在资源管理器中双击它就可以测试。

如果在运行子进程时仍然弹出一个控制台窗口,那么这完全是Twisted中的一个错误,你应该这样做。 Eric在邮件列表消息中的回答是错误的;如果你想用spawnProcess生成进程,他们绝对不应该弹出随机控制台窗口。

如果点击 - .pyw启动方法不会导致控制台窗口弹出,那么它可能与cx_Freeze构建的方式有关你的可执行文件,你可能想看看它。

在UNIX上,我们有一个特定于平台的usePTY,因此我们可以使用特定于平台的spawnProcess来扩展useConsole,这会为Windows做类似的事情。 This later message in the thread建议实施策略,please file a ticket。让我们重做一切的票太雄心勃勃了,无法解决这个问题。