擅长:python、mysql、java
<p>拆下两条管路</p>
<pre><code>if sys.platform == "win32":
base = "Win32GUI"
</code></pre>
<p>从你的设置脚本,它应该可以工作。在</p>
<p><code>base = "Win32GUI"</code>告诉<code>cx_Freeze</code>不要启动控制台窗口,并且只有在主应用程序启动GUI(例如使用PySide、PyQt、Tk,…)时才应该使用。如果您从已经启动的控制台运行可执行文件,它大概还会将标准输出从控制台重定向出去。在您的例子中,您有一个基于控制台的应用程序,因此您希望启动一个控制台并接收标准输出。此行为在<code>cx_Freeze</code><a href="https://cx-freeze.readthedocs.io/en/latest/faq.html#windows-command-prompt-appears-briefly" rel="nofollow noreferrer">documentation</a>中有部分解释。在</p>
<p>现在,如果您不使用cmd运行可执行文件(例如在Windows资源管理器中双击它),它会启动一个控制台窗口,在那里打印输出,并在执行完成后立即关闭控制台。在示例脚本中,您希望在控制台关闭之前有时间读取输出,因此您需要的是告诉脚本在完成之前等待,例如直到您按下某个键。你可以添加</p>
^{pr2}$
<p>在脚本的末尾,请参见<a href="https://stackoverflow.com/q/983354/8516269">How do I make python to wait for a pressed key</a>。在</p>