如何从Sublime Text 2运行Python代码?


309

我想在Sublime Text 2中设置完整的Python IDE。

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

Answers:


372

工具->构建系统->(选择)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
崇高的文字也可以“自动检测”该语言。所以它对我来说只是CTRL + B
Alexis

4
确保python在您PATH
手中

2
您如何停止运行程序(python)?
Ib33X 2012年

3
我的键盘的Break键看起来像“ Pause / Break”(暂停/中断),因此我还添加了停止程序{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
icy

3
{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }在用户键绑定中使用该行,并使用会在程序仍在运行时ctrl+shift+c打印出该版本[Cancelled]
Devi 2013年

56

在Mac OS X上,以.py扩展名保存文件。按+ B。它在下面的窗口中运行。

在此处输入图片说明


55

编辑%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)2012年

6
单斜杠也可以代替Windows上的双反斜杠:“ C:/Python27/python.exe”(类似于Linux和OSX)
Dylan Hogg,

7
对我来说,路径是%APPDATA%\ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus 2013年

5
我似乎在Sublime Text 3
中看

44

要运行CtrlB(通过回答matiit

但是当CtrlB 不起作用时,Sublime Text可能找不到Python解释器。尝试运行程序时,请参阅日志并在路径中找到对Python的引用。

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

关键是它试图通过命令行运行python,cmd如下所示:

python -u C:\scripts\test.py

如果您无法从cmd运行python,那么Sublime Text也不会。
(在cmd中自己尝试,在其中键入python并运行它,应该显示python命令行)

您可以更改Sublime Text构建公式或System %PATH%

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

    • 运行命令行*,然后输入以下命令:*需要以管理员
      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一起传递的命令行参数的list选项。
Jim Raynor 2014年



6

如果使用python 3.x,则需要编辑 Python3.sublime-build

(首选项>浏览包> Python 3)

看起来像这样:

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

4

[这适用于ST3(Win),不确定ST2]

要使输出在Sublime中作为另一个文件可见(为错误显示一个文件),请执行以下操作:

  1. 创建一个新的构建系统: Tools > Build Systems > New Build System...
  2. 使用以下配置:
    {
        “ cmd”:[“ python.exe”,“ $ file”,“ 1>”,“ $ file_name .__ STDOUT __。txt”,“ 2>”,“ $ file_name .__ STDERR __。txt”],
        “ selector”:“ source.python”,
        “外壳”:是的,
        “ working_dir”:“ $ file_dir”
    }
  1. 对于您的Python文件,选择上面的构建系统配置文件: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. 现在,在文件旁边,例如,"file.py"您将拥有"file.__STDOUT__.py""file.__STDERR__.py"(对于错误,如果有的话)
  4. 如果将窗口分为三列或一个网格,您将立即看到结果,而无需切换面板/窗口

2

酷你们,我刚发现这个:

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

它解释了(像上面的答案之一一样)如何在默认目录中编辑此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。完善!
乔纳森·利德贝克

1

您可以通过“查看/显示控制台”或Ctrl+ 访问Python控制台`


1
但它显示以下错误:运行中的文件“。\ exec.py”第109行,目录名称中的文件“。\ ntpath.py”的第205行,拆分文件中的行“。\ ntpath.py”的第170行splitdrive TypeError中的第125行中的“。\ ntpath.py”:无法订阅“ NoneType”对象
Neo

请提供更多有关您正在做的事情的细节(通过扩展问题)。

我只是输入p​​ython代码(如print'hello'),然后构建它并打开控制台以查看此错误。

使用Python控制台无法回答问题。嵌入式解释器仅用于与插件API交互,而不用于一般开发。
mkenyon

1

我解决了这个问题:

> Preferences –> Browse Packages –> Default 

打开第exec.py41-42行附近的文件,代码应如下所示:

for k, v in proc_env.iteritems():
    proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

然后将其删除或编辑为:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'

它实际上是做什么的?它有什么帮助?
Qwerty

@Qwerty他认为程序应该处理异常,因此将代码放在一个try块中。
CHM 2013年

我试过了 它没有解决问题,并且破坏了现有行为。
乔纳森·利德贝克

1

我今天遇到了同样的问题。这是我设法在Sublime Text 3中运行python代码的方式:

  1. Ctrl+ B(对于Mac,+ B)开始构建系统。它应该立即执行文件。
  2. 遵循此答案以了解如何自定义构建系统。

接下来,您需要将内容替换Python.sublime-build

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

您当然可以进一步自定义它以适合您的需求。


1

在python v3.x中,您应该转到:Tools->Build System->New Build System

然后,在sublime文本编辑器中弹出untitled.sublime-build窗口,输入设置为:

{

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

要查看路径,请执行以下操作Type following in terminal as

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

您可以制作多个构建系统,但默认情况下,应将其保存在具有.sublime-build扩展名的Sublime文本包中

然后,选择新的构建系统 ,然后cltr+b根据您的操作系统按或其他。


0

我有同样的问题。您可能尚未保存文件。确保使用.py扩展名保存您的代码,并且该代码应该可以工作。


0

关于上述构建系统要注意的一件事:您可以编写(并使用)自定义.sublime-build文件,甚至可以编写每个项目build_systems子句(在项目设置中)。这使您可以做一些有用的事情,例如使用ANSI颜色输出的精美测试运行程序

要获得更多的“完整IDE”功能,可以使用出色的SublimePythonIDE软件包:

  • 代码完成(英特尔)
  • 跳转到定义和对象描述
  • 适当的棉绒/ pep8
  • 用virtualenv支持不同的解释器

披露:我已经贡献了PR该程序包,我用它所有的时间,但 其他人


0

在Sublime旁边使用真正的python控制台

Sublime的构建系统和SublimeREPL(上面的答案)都受到限制,因为您在运行文件后无法轻松地与工作空间变量进行交互。

如果要运行脚本,然后以类似于REPL的方式工作(就像在IDE中一样),则建议将Sublime与IPython控制台一起打开。您可以使用AutoHotKey(Windows)或AutoKey(Linux)进行设置,以使单个快捷方式将复制文件名(或仅复制所选的代码),然后将其粘贴到控制台中以运行文件。

LinuxWindows的详细说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.