【问题标题】:How do I run Python code from Sublime Text 2?如何从 Sublime Text 2 运行 Python 代码?
【发布时间】:2012-01-23 00:24:16
【问题描述】:

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

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

【问题讨论】:

    标签: python ide sublimetext2 sublimetext


    【解决方案1】:

    工具 -> 构建系统 ->(选择)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

    【讨论】:

    • sublime text 也可以“自动检测”语言。所以对我来说只需 CTRL + B
    • 确保python 在您的PATH 中... Windows 安装程序似乎不会自动执行此操作
    • 如何停止运行程序(python)?
    • 我键盘的中断键看起来像“暂停/中断”,所以为了停止进程我还添加了{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
    • 在用户键绑定中使用{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} } 行并使用ctrl+shift+c 打印出构建为[Cancelled],同时程序仍在运行。
    【解决方案2】:

    编辑 %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 版本。

    【讨论】:

    • 注意路径中的双斜线,否则Sublime不会识别!
    • 单正斜杠也可以在 Windows 上代替双反斜杠:“C:/Python27/python.exe”(Linux 和 OSX)
    • 对我来说路径是 %APPDATA%\Sublime Text 2\Packages\Python\Python.sublime-build
    • 我在 Sublime Text 3 中似乎没有看到 Python 文件夹
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      要运行CtrlBmatiit 回答)

      但是当 CtrlB 不起作用时,Sublime Text 可能找不到 Python Interpreter。尝试运行程序时,请查看日志并在路径中找到对 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 构建公式或系统 %PATH%

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

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

        • OR 手动:(首选)
          在字符串末尾添加;C:\Python27;C:\Python27\Scripts

      • 要设置解释器的路径而不弄乱系统%PATH%,请参阅ppy 的答案。

      【讨论】:

      【解决方案5】:

      您可以使用SublimeREPL(您需要先安装Package Control)。

      【讨论】:

      • 您能否详细说明如何将数据从脚本窗口传送到 SublimeREPL,因为它适用于 python,而 R 确实适用...
      【解决方案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"
      }
      

      【讨论】:

        【解决方案7】:

        [这适用于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"], “选择器”:“source.python”, “壳”:是的, “工作目录”:“$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. 如果将窗口拆分为 3 列或网格,您将立即看到结果,无需切换面板/窗口

        【讨论】:

          【解决方案8】:

          在 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 文本包 中,并带有 .sublime-build 扩展名。

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

          【讨论】:

            【解决方案9】:

            酷你们,我刚刚发现了这个:

            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。完美!
            【解决方案10】:

            我解决了这个问题:

            > Preferences –> Browse Packages –> Default 
            

            打开exec.py 文件,靠近第 41-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 他认为程序应该处理异常,所以他将代码放在try 块中。
            • 我试过这个。它没有解决问题,并且破坏了现有行为。
            【解决方案11】:

            我今天遇到了同样的问题。以下是我如何在 Sublime Text 3 中运行 python 代码:

            1. Ctrl + B(对于 Mac, + B)开始构建系统。它现在应该执行该文件。
            2. 关注this answer,了解如何自定义构建系统。

            接下来需要将Python.sublime-build中的内容替换为

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

            您当然可以进一步将其自定义为适合您的东西。

            【讨论】:

              【解决方案12】:

              似乎 Ctrl+Break 对我不起作用,Preference - User 也不起作用...

              使用键,Alt → t → c

              【讨论】:

                【解决方案13】:

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

                【讨论】:

                • 但它显示以下错误:文件“.\exec.py”,第 109 行,在运行文件“.\ntpath.py”,第 205 行,在 dirname 文件中“.\ntpath.py ",第 170 行,拆分文件 ".\ntpath.py",第 125 行,拆分驱动类型错误:'NoneType' 对象不可订阅
                • 请提供更多细节(通过扩展问题)你在做什么。
                • 我只需输入 python 代码,如 print 'hello' 然后构建它并打开控制台查看此错误。
                • 使用 Python 控制台 does not answer the question。嵌入式解释器仅用于与插件 API 交互,不用于一般开发。
                【解决方案14】:

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

                【讨论】:

                  【解决方案15】:

                  关于上述build system 需要注意的一点:您可以编写(和使用)自定义.sublime-build 文件,甚至每个项目的build_systems 子句(在您的项目设置中)。这让你可以做一些有用的事情,比如a fancy test runner with ANSI colors output

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

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

                  披露:我已经为那个包贡献了一个 PR,我一直在使用它,但是 thereareothers

                  【讨论】:

                    【解决方案16】:

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

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

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

                    LinuxWindows的详细说明

                    【讨论】:

                      猜你喜欢
                      • 2014-08-05
                      • 2014-10-08
                      • 2023-03-05
                      • 2014-03-01
                      • 1970-01-01
                      • 2016-02-22
                      相关资源
                      最近更新 更多