py2exe给出了EOFError

时间:2012-08-14 19:12:07

标签: python pygame py2exe eoferror

我有一个简单的程序,我使用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(&#34;距离太阳有多远?&#34;%planet)

我在互联网上做了相当多的搜索,发现了一些事情,说我需要一个控制台参数,但我不明白那是什么。

1 个答案:

答案 0 :(得分:0)

从pygame网站看一下这个py2exe example

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

  

这只适用于GUI应用程序,在setup命令中将“windows =”更改为“console =”可以完成这项工作。

相关部分是这个(IIRC):

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

您必须将windows更改为console

此外,pygame-user邮件列表上的this thread描述了同样的问题:

  

我的猜测是你使用py2exe和“windows”参数,这意味着没有打开控制台 - 没有控制台,没有用于raw_input的stdin。您可以在setup.py中使用“console”参数,并且您的exe将打开一个控制台窗口,允许raw_input工作。