如何在Sublime Text 2中运行Python代码?

317

我希望在Sublime Text 2中搭建完整的Python集成开发环境。

我想知道如何在编辑器中运行Python代码。是使用构建系统完成吗?我该怎么做?

16个回答

380

工具 -> 构建系统 -> (选择) Python 然后:

运行:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

这将在控制台中启动您的文件,该控制台应位于编辑器底部。

停止:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

您可以在此处找到您的Break键位置:http://en.wikipedia.org/wiki/Break_key

注意:Ctrl + C无法使用。

Ctrl + Break不起作用时应该怎么办:

前往:

首选项 -> 键绑定 - 用户

并粘贴下面的行:

{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} } 

现在,您可以使用 ctrl+shift+c 代替 CTRL+BREAK


9
Sublime Text也可以“自动检测”语言。所以我只需按CTRL + B就可以使用它。 - Alexis
4
请确保python已经在您的PATH环境变量中,因为Windows安装程序似乎不能自动完成这一步骤。 - SeanJA
2
你如何停止正在运行的程序(Python)? - Ib33X
3
我的键盘上的中断键看起来像是“暂停/中断”,因此为了停止进程,我还添加了{"keys": ["pause"], "command": "exec", "args": {"kill": true} } - icy
3
在用户键绑定中有这样一行代码:{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} },使用 ctrl+shift+c 快捷键会打印出构建被 [Cancelled] 取消的信息,但程序仍在运行。 - Devi
显示剩余2条评论

56
在Mac OS X上,将您的文件保存为.py扩展名。按下+B键。它会在下方的窗口中运行。

输入图像描述


56

编辑 %APPDATA%\Sublime Text 2\Python\Python.sublime-build

将内容更改为:

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

将 "c:\python27" 部分更改为您系统中安装的任何 Python 版本。


3
请注意路径中的双斜杠,否则Sublime将无法识别它! - Enrico
6
在Windows系统中,单斜杠也可以代替双反斜杠: "C:/Python27/python.exe" (与Linux和OSX相似)。 - Dylan Hogg
7
对我来说,路径是 %APPDATA%\Sublime Text 2\Packages\Python\Python.sublime-build。 - aultimus
5
我好像在Sublime Text 3中找不到Python文件夹。 - HoKy22

44

运行程序请按CtrlB(答案来自matiit

但是当CtrlB无法运行时,Sublime Text可能找不到Python解释器。尝试运行您的程序时,请查看日志并找到路径中关于Python的引用。

[cmd:  [u'python', u'-u', u'C:\\scripts\\test.py']]
[path: ...;C:\Python27 32bit;...]

重点是它尝试通过命令行运行Python,命令行看起来像:

python -u C:\scripts\test.py

如果你无法从cmd中运行Python,那么Sublime Text也不能运行。
(在cmd中尝试一下,输入python并运行,应该会出现python命令行)

SOLUTION

你可以更改Sublime Text构建公式或系统%PATH%

  • 设置%PATH%
    *你需要重新启动你的编辑器以加载新的%PATH%

    • 运行Command Line*,输入以下命令:*需要以管理员身份运行
      SETX /M PATH "%PATH%;<python_folder>"
      例如:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • 或者手动更改:
      在字符串末尾添加;C:\Python27;C:\Python27\Scripts。(推荐)
      在Win7中设置路径

  • 要设置解释器路径而不影响系统%PATH%,请参见ppy的回答


抱歉,您能解释一下选项“-u”的含义吗?我找不到与python.exe一起传递的命令行参数列表选项。 - Jim Raynor
@JimRaynor 这是无缓冲流。https://dev59.com/O2Yq5IYBdhLWcg3wui0z - Qwerty

11

1
你能详细说明一下如何将脚本窗口中的数据发送到SublimeREPL吗?因为它对Python有效,而对R无效... - Matt Bannert

6
如果使用Python 3.x,您需要编辑Python3.sublime-build文件(位置:Preferences > Browse packages > Python 3),使其看起来像这样:
{
  "path": "/usr/local/bin",
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}

5

[ 本指南适用于ST3(Win),不确定ST2是否适用 ]

如果希望在Sublime中以另一个文件的形式显示输出(还有一个文件用于错误输出),请按照以下步骤进行:

  1. 创建一个新的构建系统:工具 > 构建系统 > 新建构建系统...
  2. 使用以下配置:
    {
        "cmd": ["python.exe", "$file", "1>", "$file_name.__STDOUT__.txt", "2>", "$file_name.__STDERR__.txt"],
        "selector": "source.python",
        "shell": true,
        "working_dir": "$file_dir"
    }
  1. 为您的Python文件选择上述构建系统配置文件:工具 > 构建系统 > {your_new_build_system_filename}
  2. ctrl + b
  3. 现在,在您的文件旁边,例如"file.py",您将有"file.__STDOUT__.py""file.__STDERR__.py"(如果有错误)
  4. 如果将窗口分成3列或网格,则可以立即看到结果,无需切换面板/窗口

3
在Python v3.x中,您应该前往:工具->构建系统->新建构建系统
然后,在Sublime文本编辑器中弹出未命名的.sublime-build窗口。将设置输入为:
{

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

如果想查看路径,请在终端中输入以下命令:

python
>>> import sys
>>>print(sys.executable)

您可以创建多个构建系统,但默认应将其保存在Sublime Text的Packages中,并使用.sublime-build扩展名。

然后,选择新的构建系统并按ctrl+b或其他基于您的操作系统的快捷键。


2

酷毙了,我刚刚发现了这个:

http://ptomato.wordpress.com/2012/02/09/geek-tip-running-python-guis-in-sublime-text-2/

它解释了(就像上面的一个答案那样)如何编辑在default目录下的exec.py

我有一个问题,我的PYTHON UI APPLICATION无法启动。我注释掉了以下代码段的最后一行:

    # Hide the console window on Windows
    startupinfo = None
    if os.name == "nt":
        startupinfo = subprocess.STARTUPINFO()
        #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW

并且,taaadaaaa,我可以通过按下Ctrl+B来启动我的应用程序。无论如何,这是一个有趣的句子,对吧?非常感谢写这篇文章的人;-)

问题解决了!控制台输出在Sublime Text 2中显示,表明我的代码正在执行,但是我的GUI界面从未出现。我注释掉那行代码,现在它又回来了。控制台输出仍然在Sublime Text中显示。太完美了! - Jonathan Lidbeck

1
似乎 Ctrl+Break 对我不起作用,Preference - User... 也是如此。
使用 Alt → t → c 快捷键。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接