2

我在 Mac OSX Lion 上使用 Enthought Canopy。我之所以使用它,是因为可以轻松下载和安装模块和库(由于许多问题,通过终端下载 pandas 和 numpy 时遇到了很多麻烦)。所以,现在我正在为 Canopy 中的一个项目进行编码,这没关系(但仍然更喜欢 Wing)。我遇到的问题是我需要要求用户输入。例如,当我这样做时:

 x = input('Enter your input here: ')

我收到如下 EOF 错误:EOFError: EOF when reading a line

我环顾四周,相信这可能是 Canopy 不支持的东西。想知道这是否确实如此,是否有解决此问题的解决方案/解决方法?

4

1 回答 1

2

我假设您在 Canopy 编辑器中嵌入的 IPython shell 中输入此代码。这是 IPython 的 Qt 控制台中的上游错误/缺陷。因为远程外壳实际上并没有连接到终端,所以需要替换类似的功能,以便从 GUI 控制台小部件获取输入input()raw_input()IPython(以及因此 Canopy)确实替换raw_input()但不替换input(). 如果您要将其放入脚本并从命令行执行,则此代码将使用 Canopy 的 Python 解释器工作,并且它也可以在 IPython 的终端实例中工作。它很可能被忽略了,因为它通常被认为是一个坏主意input()

raw_input()改用并解析您获得的字符串。如果必须,您可以使用eval(),但我建议使用更具体的解析/转换功能。

于 2013-05-24T21:36:34.323 回答