【发布时间】:2015-03-19 01:12:31
【问题描述】:
每当我尝试在包含 input() 或 raw_input() 的 Sublime Text 2 (Python 2.7) 中构建代码时,我都会收到此错误:
EOFError:读取一行时出现EOF [0.1s 完成,退出码 1]
我发现一些教程说这是关于 ST 找不到 Python 的问题,所以我编辑了应该修复它的文件,但无济于事。我仍然得到同样的错误。
这里有什么问题,如何解决?
【问题讨论】:
每当我尝试在包含 input() 或 raw_input() 的 Sublime Text 2 (Python 2.7) 中构建代码时,我都会收到此错误:
EOFError:读取一行时出现EOF [0.1s 完成,退出码 1]
我发现一些教程说这是关于 ST 找不到 Python 的问题,所以我编辑了应该修复它的文件,但无济于事。我仍然得到同样的错误。
这里有什么问题,如何解决?
【问题讨论】:
ST 没有定位 Python 不是问题,而是 ST 在构建程序时不支持交互性 - Python 中的 input()/raw_input(),Ruby 中的 gets,scanf 和关联C/C++、Java 中的Scanner 等。对于编译语言,解决方法是通过处理输入的 shell 运行程序。这也可以使用 Python、Ruby、Perl 等解释型语言来完成,但对于许多人来说,他们首选的解决方案是使用SublimeREPL,可通过Package Control 获得。这实质上是在 Sublime 中运行一个交互式 Python shell,可以是标准 Python shell 或 IPython,出于多种原因,我更喜欢它。
SublimeREPL 带有一系列命令,用于获取行、块、选择或整个代码文件并将它们传递给 REPL(必须首先手动启动),然后处理输入和输出。或者,如果您只是测试较小的 sn-ps 代码,您可以在 SublimeREPL 中输入并运行它 - 我发现自己经常这样做,这非常有帮助。
【讨论】: