1

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

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

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

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

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

我无法控制子进程的代码,所以不幸的是,没有办法做某事,但即使我做了这个过程,我正在生成它是一个控制台应用程序,我相信 FreeConsole() 不能在那里调用或进程将终止。

4

1 回答 1

0

这可能是 Twisted 中的一个错误,但也可能是cx_Freeze.

当您使用 Python 从 GUI 运行代码但不cx_Freeze涉及时会发生什么?如果您安装了 Python,您应该能够通过简单地将代码放入.pyw文件并在资源管理器中双击它来测试这一点。

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

如果单击.pyw启动方法没有弹出控制台窗口,则可能与cx_Freeze构建可执行文件的方式有关,您可能想查看它。

在 UNIX 上,我们有一个特定于平台的,因此我们可以使用特定于平台的扩展来为 Windows 做类似的事情 usePTY是有意义的。线程中后面的这条消息建议了一个实施策略,所以请提交一张票。Let's-redo-everything 票过于雄心勃勃,无法解决这个问题。spawnProcessuseConsole

于 2013-10-07T17:48:37.723 回答