使用Sublime Text 3设置Python 3构建系统

64

我想要配置Sublime Text 3以构建Python 3,但是我似乎不理解这些构建是如何工作的。许多教程告诉我要创建一个包含类似以下代码的构建文件:

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

将其保存为文件名为Python.sublime-buildpython3.sublime-build的文件(我找到的大部分信息是相互矛盾的)。一个教程建议在ST3 Packages文件夹中创建一个名为Python的新文件夹,并将构建文件添加到其中,而其他教程则建议将其留在名为User的文件夹中。

有一个教程解释了我如何更改操作系统上的环境变量path以使其正常工作。但那似乎也没有帮助。


我向Packages中添加了一个Python文件夹(因为它之前不存在),并添加了一个名称为Python.sublime_build的构建文件,其中仅包含我上面发布的代码。现在当我尝试运行Sublime Text时,它给我这个错误:

Error trying to parse build system:
Expected value in Packages\Python\Python.sublime-build:2:5

1
"将"Sublime Text 3与Python 3配合使用"是什么意思?我使用从http://www.sublimetext.com/3下载的Sublime 3,它可以直接与Python 3一起使用..." - Moritz
可能是因为我下载了错误的版本(x32而不是x64)导致的吗?因为我们从同一位置下载,但我无法让Python 3正常工作。我运行的是64位操作系统,但我认为这不会有任何影响,因为我的许多其他程序也是x32。 - user3002473
1
惊慌失措地因为一个踩票而不会解决问题。清楚地解释你想要做什么,回答@Moritz的问题并解释你到目前为止已经做了什么(因为你已经做了一些事情,但我不确定是什么)。我还建议删除所有与问题无关的信息(我会提供编辑建议)。 - Veedrac
2
好的,抱歉,我刚才有些过激了,因为今晚我收到了多个未经解释的负分,而我认为这些问题很清楚。@Moritz,每次我尝试使用Sublime Text构建程序时,它都会使用Python 2.7.3进行构建,而我创建的构建文件指定应该使用Python 3.2.5(我计算机上当前安装的Python 3版本)。 - user3002473
1
什么操作系统?这是完整的错误吗?(我现在得走了,无法提供更多帮助。) - Veedrac
Windows 7 x64,确实是完整的错误信息。谢谢您的帮助。 - user3002473
10个回答

89

你收到此错误的原因是,你在Windows上运行时使用了Unix风格的路径来执行python可执行文件。请将/usr/bin/python3更改为C:/Python32/python.exe(确保你使用正斜杠/而不是Windows风格的反斜杠\)。一旦进行了这些更改,你应该就可以顺利运行了。

此外,还需要将单引号'更改为双引号",如下所示:

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

.sublime-build 文件需要是有效的 JSON,这要求字符串必须用双引号包裹,而不能使用单引号。


非常感谢!这让我遇到了很多麻烦。我再次道歉之前的恐慌,那是不成熟的。 - user3002473
这个问题和这个答案还有一个不同之处(解决了我的问题+谢谢); 在问题中,“...”是一个单独的字符,而不是3个“.”字符。 - emmagras
1
正如我在回答中所述,您需要使用正斜杠作为路径分隔符。更改后,只要Python安装在那里,您的路径就没有任何问题。 - MattDMo

20

将Sublime Text打造成Python IDE(Windows)的步骤

在Sublime Text 3上测试成功。假设Sublime Text和Package Control已经安装好了...

  1. 安装Python(python.org),留意安装位置,选一个简单的文件夹例如C盘,并同意在安装结束时移除字符限制。

  2. 安装SublimeREPL包(按下Ctrl + Shift + P,选择Package Control - Install Package,输入SublimeREPL,回车)。

  3. 进入Preferences,Package Settings,SublimeREPL,Settings - User。

  4. 复制以下内容到该文件中,根据需要更新Python安装文件夹路径。你也可以自定义这些设置,选择自己喜欢的语法(最后一行),但我更喜欢使用纯文本输出。

{
  "default_extend_env": {"PATH":"C:\\Program Files\\Python36\\"},
  "repl_view_settings": {
  "translate_tabs_to_spaces": false,
  "auto_indent": false,
  "smart_indent": false,
  "spell_check": false,
  "indent_subsequent_lines": false,
  "detect_indentation": false,
  "auto_complete": true,
  "line_numbers": false,
  "gutter": false,
  "syntax": "Packages/Text/Plain text.tmLanguage"
  }
}
  • 保存并关闭文件(SublimeREPL.sublime-settings)。

  • 进入菜单,选择工具(Tools),再选择构建系统(Build System),然后选择新建构建系统(New Build System)。

  • 将所有现有的文本替换为以下内容:

  • {
    "target": "run_existing_window_command", 
    "id": "repl_python_run",
    "file": "config/Python/Main.sublime-menu"
    }
    
  • 按Ctrl + S或另存为“C:\Users[用户名]\AppData\Roaming\Sublime Text 3\Packages\User\SublimeREPL-python.sublime-build”,根据需要更新用户名或路径。这应该是Sublime Text存储设置和构建的任何位置。

  • 转到工具菜单,然后选择构建系统,选择SublimeREPL-python。

  • 现在就完成了 - 现在来测试一下。打开或创建一个简单的Python文件,文件扩展名为*.py,保存在任何所需的位置。

  • 确保文件已在Sublime Text中打开并选中。现在,当您按Ctrl+B进行构建和运行时,它将打开另一个标签,标题为“REPL [python]”,执行并显示Python代码的结果。

  • 如果您想进一步操作,我强烈建议进行以下更改,以允许Sublime在每次按Ctrl+B(构建)时重新加载已执行的Python,而不是每次都打开一个新的标签:

    在(首选项,浏览程序包)SublimeREPL \ config \ Python \ Main.sublime-menu中的“repl_python_run”命令中添加以下行,在“external_id”: “python”参数之前:

    "view_id": "*REPL* [python]",
    

    然后变换行:

    if view.id() == view_id
    

    转换成:

    if view.name() == view_id
    

    在SublimeREPL\sublimerepl.py文件中。


    这不是我们应得的答案......但却是我们所需要的答案。点赞! - Alfa Bravo
    你有任何想法为什么构建时它不保存(即使我已经在版本3.2上勾选了“构建时保存”复选框)吗? - PythonProgrammi
    @Giovanni G. PY - 抱歉,我无法重现这个问题。我正在运行Sublime Text 3.2.2,Build 3211,并且可以验证当光标在该文件中时,按下Cntrl + Shift + B会保存源文件,因为它执行构建并显示REPL窗口。 - Daniel
    @Daniel 现在它可以工作了,我不知道是因为更新还是我改变了什么。 - PythonProgrammi

    7

    如果您正在使用PyQt,那么为了正常工作,您应该添加"shell":"true"值,这看起来像这样:

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

    1
    谢谢!通过添加 "shell":"true",我摆脱了关于Windows UNC路径的警告消息(“UNC路径不受支持。默认为Windows目录”)。 - YYY

    5

    在Sublime Text 3中运行Python文件

    对于Sublime Text 3,首先需要安装Package Control:

    这对我来说完美地运作了。希望它也能帮到您。 如有任何未满足的要求,请访问https://packagecontrol.io/installation#st3


    3

    配置Sublime Text Editor3以使用Python3的步骤如下:

    1. 在工具栏中选择首选项。
    2. 选择Package Control。
    3. 将弹出一个窗口。
    4. 输入/选择Package Control: Install Package。
    5. 等待一分钟,直到存储库加载完成。
    6. 另一个弹出窗口将打开。
    7. 搜索Python 3。
    8. 现在Sublime Text已设置为Python3。
    9. 现在转到工具→构建系统。
    10. 选择Python3。

    享受编码吧。


    我发现这个帮助简单易懂,步骤也很容易。 - ArifMustafa

    1

    适用于Linux的版本。创建一个名为~/.config/sublime-text-3/Packages/User/Python3.sublime-build的文件,并添加以下内容。

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

    1
    并且为了解决已经解决的问题,我在U盘E:上安装了便携式科学Python,在另一台电脑上变成了D:,我会收到错误信息“系统找不到指定的文件”。因此,我使用父目录来定义路径,就像这样:

    从这里开始:

    {
        "cmd": ["E:/WPy64-3720/python-3.7.2.amd64/python.exe", "$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }
    

    变成这样:

    {
        "cmd": ["../../../../WPy64-3720/python-3.7.2.amd64/python.exe","$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }
    

    您可以根据您的Python安装位置进行修改。

    0

    我想在已接受的答案中再补充一点:

    当您编辑下面代码片段中的cmd部分时,请确保添加计算机上保存Python的文件地址(使用正斜杠)。

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

    如何知道Python在您的系统中安装在哪里?Windows用户有两种方法:

    1. 打开命令提示符并执行以下查询:where python。如果它显示了python.exe的路径,请复制并粘贴它,然后加上/。如果它显示了一些错误,则按照下面的过程进行:
    2. 转到开始菜单 -> 搜索Python快捷方式(不是IDLE) -> 右键单击 -> 更多 -> 打开文件位置 -> 右键单击快捷方式 -> 属性 -> 目标 -> 现在可以看到路径 -> 将其复制并粘贴到上面的字段中。

    0
    首先,你需要找到你的python.exe文件的位置。要找到位置,请运行以下Python脚本:
    import sys
    print(sys.executable)
    

    然后您可以创建自定义的Python构建:
    {
    "cmd": ["C:\\Users\\*username*\\AppData\\Local\\Programs\\Python\\Python39\\python.exe", "-u", "$file"],
    "file_regex": "^[ ]File \"(...?)\", line ([0-9]*)",
    "selector": "source.python"}
    

    你可以更改位置,我的情况下是C:\Users*用户名*\AppData\Local\Programs\Python\Python39\python.exe

    然后保存你的新构建。保存时不要更改文件扩展名。


    你不应该在论坛上公开发布文件路径,这会暴露你的系统文件地址。这是个人数据,可能会被滥用。 - lousycoder
    @lousycoder 是的。我改了它。 - Sashika Sandeepa

    -2

    这里有一个非常简单的Python Sublime Text构建系统,当使用py file_name.py调用Python脚本时可以工作。

    只需通过Tools > Build System > New Build System创建py.sublime-build并添加以下内容:

    {
        "cmd": ["python3", "$file"]
    }
    

    您可以在Sublime Text编辑器中选择它,方法是转到工具 > 构建系统 > py并使用Ctrl + b进行构建。

    注意:如果您的文件系统没有python3,则需要提供path/to/python3,然后它应该可以正常工作。


    你有没有碰巧尝试使用这个构建系统?显然没有,因为它不起作用。请参见本页面上其他更有帮助的答案。 - MattDMo

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