2

我有一个简单的程序,我使用 pygame 导入声音,但它仍然是一个 CLI 程序。每当我将它编译成 exe 时,它​​会在我尝试运行它时给我一个 EOFError,它看起来像这样

Traceback (most recent call last):
  File "PlanetaryDistanceFromSun.pyw", line 57, in <module>
  File "PlanetaryDistanceFromSun.pyw", line 31, in main
  File "PlanetaryDistanceFromSun.pyw", line 44, in Planet
EOFError: EOF when reading a line

这是有问题的代码: raw_input("%s 离太阳有多远?" % planet)

我在互联网上进行了大量搜索,发现一些东西说我需要一个控制台参数,但我不明白那是什么。

4

1 回答 1

0

看看 pygame 网站上的这个py2exe 示例

它还包含您的问题的解决方案:

这仅适用于 GUI 应用程序,在 setup 命令中将“windows =”更改为“console =”即可。

相关部分是这个(IIRC):

...
windows = [{
            'script': self.script,
            'icon_resources': [(0, self.icon_file)],
            'copyright': self.copyright
        }],
...

您必须更改windowsconsole.

此外,pygame-user 邮件列表上的这个线程描述了同样的问题:

我的猜测是您使用带有“windows”参数的 py2exe,这意味着没有打开控制台 - 没有控制台,就没有标准输入供 raw_input 使用。您可以改为在 setup.py 中使用“console”参数,您的 exe 将打开一个控制台窗口,允许 raw_input 工作。

于 2012-08-15T06:34:56.367 回答