关于ide:如何从Sublime Text 2运行Python代码?

How do I run Python code from Sublime Text 2?

我想在Sublime文本2中建立一个完整的Python IDE。

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


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

运行:

1
2
3
4
5
6
7
      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

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

停止:

1
2
3
       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

您可以在这里找到您的Break密钥:http://en.wikipedia.org/wiki/break_key。

注:CTRL + C不起作用。

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

去:

Preferences -> Key Bindings - User

并粘贴以下行:

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

现在,您可以使用ctrl+shift+c而不是CTRL+BREAK


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

enter image description here


编辑%appdata%sublime text 2pythonpython.sublime-build

将内容更改为:

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

将"c:python27"部分更改为系统中任何版本的python。


要运行,请按ctrlbbakbd(matit回答)

但是当ctrlbkbd不工作时,Sublime文本可能找不到python解释器。尝试运行程序时,请查看日志并在路径中找到对python的引用。

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

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

1
python -u C:\scripts\test.py

如果不能从cmd运行python,那么sublime文本也不能。(在cmd中亲自尝试,在其中键入python并运行它,应该出现python命令行)

解决方案

您可以更改Sublime文本构建公式或系统%PATH%

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

    • 运行命令行*并输入此命令:*需要以管理员身份运行SETX /M PATH"%PATH%;"例如:SETX /M PATH"%PATH%;C:\Python27;C:\Python27\Scripts"

    • 或手动:(首选)在字符串的末尾加上;C:\Python27;C:\Python27\ScriptsSetting Path in Win7

  • 要设置解释器的路径而不干扰系统%PATH%,请参阅PPY的回答。


您可以使用Sublimerepl(首先需要安装包控制)。


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

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

如下所示:

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


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

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

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

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

    然后,在Sublime文本编辑器中弹出Untitled.Sublime-Build窗口,输入设置为:

    1
    2
    3
    4
    5
    6
    {

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

    要查看路径,Type following in terminal as

    1
    2
    3
    python
    >>> import sys
    >>>print(sys.executable)

    您可以创建多个生成系统,但默认情况下,它应该保存在具有.sublime生成扩展名的sublime文本包中。

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


    酷,伙计们,我刚刚发现了:

    Geek tip: Running Python GUIs in Sublime Text 2

    它解释了如何在默认目录中编辑exec.py(就像上面的答案之一)。

    我的python ui应用程序无法启动。我把下面截图的最后一行注释掉了:

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

    还有,taaadaaaa,我可以按ctrl+b启动我的应用程序。不管怎样,有趣的一行,嗯?感谢写这篇文章的人;—)


    我今天遇到了同样的问题。下面是我如何以崇高的文本3运行python代码:

  • ctrl+b(对于mac,+b)启动构建系统。它现在应该执行文件。
  • 按照这个答案了解如何定制构建系统。
  • 接下来需要做的是将Python.sublime-build中的内容替换为

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

    当然,你可以进一步定制它,使之适合你。


    我解决了这个问题:

    1
    > Preferences –> Browse Packages –> Default

    打开靠近第41-42行的exec.py文件,代码应该如下所示:

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

    然后删除或编辑为:

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


    您可以通过"查看/显示控制台"或ctrl+`访问python控制台。


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

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

    如果你想运行一个脚本,然后以类似于repl的方式工作(就像在IDE中一样),那么我建议你在ipython控制台旁边有一个出色的开放式脚本。使用autohotkey(windows)或autokey(linux),您可以设置此设置,这样一个快捷方式就可以复制文件名(或仅复制选定的代码),然后将其粘贴到控制台中以运行该文件。

    Linux或Windows的详细说明


    关于上述构建系统,需要注意的一点是:您可以编写(和使用)自定义.sublime-build文件,甚至可以根据项目build_systems子句(在您的项目设置中)。这允许您执行一些有用的操作,比如使用ANSI颜色输出的高级测试运行程序。

    对于更多的"完整的IDE"功能,您可以使用卓越的Sublimepythonide包:

    • 代码完成(Intel)
    • 跳转到定义和对象描述
    • 适当的棉绒/PEP8
    • 使用virtualenv支持不同的解释程序

    披露:我已经为这个包贡献了一个公关,我一直在使用它,但还有其他的。


    我也有同样的问题。您可能还没有保存文件。确保用.py扩展名保存代码,它应该可以工作。