我正在Mac OSX Lion上使用Enthought。我之所以使用它,是因为可以很容易地下载和安装模块和库(由于一些问题,通过终端下载pandas和numpy时遇到了很多问题)。因此,现在我正在为Canopy中的一个项目编写代码,这是可以的(尽管我还是更喜欢Wing )。我遇到的问题是,我需要要求用户输入。例如,当我这样做的时候:
x = input('Enter your input here: ')我得到一个EOF错误,如下:EOFError: EOF when reading a line
我环顾四周,相信这可能是Canopy不支持的东西。我想知道这是否真的是这样,以及是否有解决方案/解决方法来解决这个问题?
发布于 2013-05-25 05:36:34
我假设您是在Canopy编辑器中嵌入的IPython shell中输入此代码。这是IPython的Qt控制台中的上游错误/缺陷。因为远程shell实际上并没有连接到终端,所以需要替换input()和raw_input()之类的函数,以便从GUI console小部件获得输入。IPython (以及树冠)确实会取代raw_input(),但不会取代input()。如果您将代码放入脚本并从命令行执行,则可以使用Canopy的Python解释器运行该代码,它也可以在IPython的终端实例中运行。它很可能被忽略了,因为使用input()通常被认为是一个坏主意。
请改用raw_input()并解析您得到的字符串。如果有必要,您可以使用eval(),但我建议您使用更具体的解析/转换函数。
https://stackoverflow.com/questions/16740468
复制相似问题