Sublime Text 3 - Python构建系统混乱

时间:2014-03-16 16:04:57

标签: python python-2.7 build python-3.3 sublimetext3

首先,提前感谢任何帮助。

我正在深入研究Python,并希望像其他项目一样继续使用Sublime Text 3。据我了解,Python的内部版本是3.3,但我想使用2.7.6。按照其他示例,我创建了一个新的构建系统,如下所示:

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

当我切换到这个新版本时,打开控制台,然后尝试在Python 2语法中运行以下命令

print "Hello, world."

我得到一个"无效的语法"错误。但是,如果我尝试在Python 3中所需的括号中运行相同的命令

print("Hello, world.")

命令执行成功。换句话说,控制台似乎没有使用2.7.6构建系统。

我觉得令人困惑的是,如果我使用与上面相同的Python 2语法保存新的test.py文件,使用默认的Python 3构建系统构建它,控制台会成功执行print命令 - 即使语法不应该兼容(如在控制台中发生)。我似乎直接在控制台中运行命令并运行文件构建。

我确信这可以归结为我的误解,但我很感激任何想法。

干杯。

1 个答案:

答案 0 :(得分:0)

所以,你可能没有意识到的一件事是

print("Hello World")

在Python 3及更高版本的Python 2中都有效,包括2.7.6,因此,如果您从命令行运行文件,无论您使用哪种解释器,它都能正确执行。 ;重新使用。

您可能也会对Sublime中的控制台和构建系统感到困惑。通过点击 Ctrl `或选择View -> Show Console打开的控制台正在运行Sublime的内部版本的Python,如果您正在使用最新版本,则删除Python 3.3.3。无论你怎么努力,都无法在控制台中运行Py2命令。它对于运行Python API命令来控制Sublime本身很有用,但在构建非plugin文件时没有用。

Build Systems让您通过外部编译器,解释器,处理器或您拥有的程序运行程序。通过在Tools -> Build System菜单中选择一个来激活它们,然后点击 Ctrl B (或 Command B 运行它。

因此,要验证您的构建系统是否正常工作,请使用

创建一个新的.py文件
print "Hello World"

在里面。保存文件,然后选择Tools -> Build System -> Python(菜单中的第一个,MakeRuby之间)。根据您的操作系统点击 Ctrl B Command B ,然后查看底部打开的窗格崇高。它应该显示" Hello World"在顶行,然后另一行说[Finished in 0.05 seconds]或类似的东西。

现在,选择Tools -> Build System -> Python 3(或您命名为新构建系统的任何内容),然后按 Ctrl / Command B ,您现在应该在构建窗格中看到无效语法的回溯。