ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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


C
Community

工具 -> 构建系统 ->(选择)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],而程序仍在运行。
p
ppy

编辑 %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”(à la Linux 和 OSX)
对我来说,路径是 %APPDATA%\Sublime Text 2\Packages\Python\Python.sublime-build
我似乎没有在 Sublime Text 3 中看到 Python 文件夹
H
Heinrich Cloete

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

https://i.stack.imgur.com/Ic2T8.png


C
Community

要运行CtrlB(由 matiit 回答)

但是当 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%;"例如:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts" 或手动:(最好)在字符串末尾添加 ;C:\Python27;C:\Python27\Scripts。

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

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

要设置解释器的路径而不弄乱 System %PATH%,请参阅 ppy 的这个答案。


抱歉,您能解释一下选项“-u”的含义吗?我找不到与 python.exe 一起传递的命令行参数的列表选项。
M
MattDMo

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


您能否详细说明如何将数据从脚本窗口发送到 SublimeREPL,因为它确实适用于 python,而 R 确实适用......
D
Daniel Romero

如果使用 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"
}

e
ellockie

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

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

创建一个新的构建系统:Tools > Build Systems > New Build System... 使用以下配置:

{
        "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 列或网格,您将立即看到结果,无需切换面板/窗口


s
susan097

在 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 文本包中。

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


a
anhoppe

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

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。完美的!
Q
Qwerty

我解决了这个问题:

> 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 块中。
我试过这个。它没有解决问题,并且破坏了现有行为。
C
Community

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

按 Ctrl + B(对于 Mac,⌘ + B)开始构建系统。它现在应该执行该文件。按照此答案了解如何自定义构建系统。

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

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

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


M
Mark K

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

使用键,Alt → t → c


t
the Tin Man

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


但它显示以下错误:文件“.\exec.py”,第 109 行,运行文件“.\ntpath.py”,第 205 行,目录名文件“.\ntpath.py”,第 170 行,拆分文件“.\ntpath.py”,第 125 行,在 splitdrive TypeError 中:'NoneType' 对象不可订阅
请提供有关您在做什么的更多详细信息(通过扩展问题)。
我只需输入诸如 print 'hello' 之类的 python 代码,然后构建它并打开控制台以查看此错误。
使用 Python 控制台 does not answer the question。嵌入式解释器仅用于与插件 API 交互,不用于一般开发。
O
Onat

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


C
Community

关于上述 build system 需要注意的一点:您可以编写(和使用)自定义 .sublime-build 文件甚至每个项目 build_systems 子句(在您的项目设置中)。这允许您执行 a fancy test runner with ANSI colors output 等有用的操作。

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

代码完成(英特尔)

跳转到定义和对象描述

适当的 linting/pep8

使用 virtualenv 支持不同的解释器

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


h
hugke729

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

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

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

LinuxWindows 的详细说明