3

我已经使用 Sublime Text 2 一年多了,最近开始将它用于 Python。Sublime 有一个为 Python 构建的构建它,我尝试使用它(内置一个用于 2.7.3 或 2.XI 相信的东西)。我正在使用 Python 3.3.0。我已经编辑了 sublime-build 文件并将其更改为:

{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}

正如另一个线程上的stackoverflow所建议的那样。我尝试重新启动 sublime 并尝试运行我的代码:

x = input("Name: ")
print("Welcome " + x)
input()

但是在底部的控制台上,当我使用 build (Ctrl+B) 运行时出现以下错误:

Name: Traceback (most recent call last):
File "/home/andrew/grive/Documents/RandomProjects/PythonStuff/HelloWorld.py", line 32,      
in <module>
x = input("Name: ")
EOFError: EOF when reading a line
[Finished in 0.1s with exit code 1]

此外,我试图通过仅使用 SublimeREPL 和其中的 Python 函数来绕过内置的构建函数,但他们也检测到我的 Python 构建为 2.7.3,因此没有编译我的 3.3.0 代码。请注意,我确实安装了 Python 3,我使用的是 Ubuntu,当我在终端中键入“python3”时,Python 会在终端中以正确的版本启动。

所以我有两个问题:

为什么我的 python3.sublime-build 不起作用,我该如何解决?

而且由于我是 linux 菜鸟,我无法访问构建文件。我去过他们一次,但我现在忘记了。它们在 /home/~.config/sublime-text-2/ 等等等等。

我看不到 .config 文件,您能解释一下它是如何工作的吗?

4

3 回答 3

4

您的问题是 sublimetext 构建无法接受用户输入 - 没有连接输入流。您的 Python 版本无关紧要。

但是,可以编写一个插件来接受输入!


至于配置文件,只需使用“首选项-> 浏览包”菜单项。

于 2012-10-24T22:55:05.753 回答
1

我发现将'Python.sublime-build'文件从'python'编辑为'python3'功能的OP解决方案。

我知道这一点,因为当我遇到同样的问题时,OP 的解决方案帮助了我,并且证明在以下行中:

import sys
print(sys.platform)

整个练习代码:

import sys
print(sys.platform)
print(2 ** 100)
x = 'Spam!'
print(x * 8)
input('Press ENTER to exit...')

使用 Python 2.7,返回是 'linux2'(对我来说)。在 Python 3.3 中,返回的是 'linux'。这是我首先使用 PVM 检测到的。当我在 Sublime 2 中进行“构建”时,“linux2”是输出;使用 OP 的方法将输出更改为“linux”,所以我认为这是正确的做法(无论如何最简单)。

使用 Python 构建输出:

linux2
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
Press ENTER to exit...Traceback (most recent call last):
  File "/home/sick/Python/script1.py", line 6, in <module>
    input('Press ENTER to exit...')
EOFError: EOF when reading a line
[Finished in 0.0s with exit code 1]

使用 Python3 构建输出:

linux
1267650600228229401496703205376
Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!
Press ENTER to exit...Traceback (most recent call last):
  File "/home/sick/Python/script1.py", line 6, in <module>
    input('Press ENTER to exit...')
EOFError: EOF when reading a line
[Finished in 0.1s with exit code 1]

没有程序错误;它给出了一个错误,因为程序正在期待用户输入(据我所知,但我只在第 4 章)。

于 2013-06-17T00:13:14.360 回答
0

我也遇到了同样的问题,只有当我使用终端启动这个程序时我才能做到这一点:

 cd WayToFile
 python FileName

一切都完成了。也许这就是它必须在所有 Python 版本中工作的方式

于 2015-10-21T16:16:53.920 回答