【问题标题】:How to Run Python Code on SublimeREPL如何在 SublimeREPL 上运行 Python 代码
【发布时间】:2013-11-12 23:07:18
【问题描述】:

我真的很喜欢使用 sublime text 2 来编写 Python 代码,但是每当我尝试运行具有输入的脚本时,sublime text 控制台都会报告错误。所以,我决定尝试SublimeREPL,但是我一直在寻找几个小时,但我没有找到如何运行 Python 代码...... 你们能帮帮我吗?

我想像使用 sublime 文本控制台 (CTRL+b) 一样在 SublimeREPL 上运行代码。我真正想知道的是是否有办法对 SublimeREPL 做同样的事情。

提前感谢您!

【问题讨论】:

  • 你读过documentation吗?你到底有什么问题?请edit您的问题并准确描述您想要做什么、到目前为止您尝试过的操作以及您遇到的具体错误(如果有)。
  • 嗯,我想我不够清楚.. 我想像使用 sublime 文本控制台(crtl+b)一样在 repl 上运行代码.. 我真正想知道的是是否有办法对 repl 做同样的事情,因为我还找不到任何答案

标签: python ubuntu python-2.7 sublimerepl


【解决方案1】:

作为described here,创建一个新的构建系统文件并将其保存为..\Packages\User\SublimeREPL-python.sublime-build。该文件应包含:

{
    "target": "run_existing_window_command", 
    "id": "repl_python_run",
    "file": "config/Python/Main.sublime-menu"
}

然后转到您的 Python 文件选项卡并选择工具 > 构建系统 > SublimeREPL-python。现在,Ctrl + B 应该执行当前的 Python 文件,并在新选项卡中输出。如果您使用双列布局,则 REPL 输出应在第二列中打开。 (这是使用 Sublime Text 3。)

【讨论】:

  • 这绝对是完美的,而且是第一次工作。我不明白为什么 SublimeREPL 不开箱即用。谢谢。
  • @sblair 这太棒了。两个问题:(1)有没有办法让它,如果一个 REPL 选项卡已经打开,它会简单地重新加载到该选项卡中(而不是打开一个新选项卡)? (2) 有没有办法使用Ctrl + B,然后让REPL保持打开状态,以便它保留在交互式Python控制台中?
  • @alexpmil 抱歉,我不知道。但是现在你提到它,这两个都会有用!可能最好在论坛上提问,但如果你知道怎么做,请在这里留下答案 - 我会赞成!
  • 这是应该被接受的答案,效果很好。谢谢!
  • @AlexP.Miller For 2):您可以通过编辑 Packages/SublimeREPL/config/Python/Main.sublime-menu 中的 repl_python_run 条目来获得交互式 Python 控制台。在cmd 中包含标志-i。来自:youtube.com/watch?v=wM2LbXCkLDI
【解决方案2】:

https://sublime.wbond.net/installation#st2 中的第一个“Install Package Control

可选检查上述包是否安装成功: 单击此文件夹中的Preferences > Browse Packages... 单击Back Button 一次,然后进入Installed Packages/ 文件夹,查看是否有Package Control.sublime-package 文件)

然后在 sublime text 2 中转到Preferences > Package Control > Package Control: Install Package

在列表中找到SublimeREPL

重启 SublimeText2

打开Preferences > Package Settings > SublimeREPL > Settings - Default 文件,从那里复制所有文本。

然后打开Preferences > Package Settings > SublimeREPL > Settings - User 并在此处粘贴文本。

重启 SublimeText2

转到Tools > SublimeREPL > Python > Python

你已经完成了

【讨论】:

  • 感谢您的回答,但我已经准备就绪。关键是我没有找到一种方法来运行我在 repl 上编写的代码,就像我们通常使用 sublime 文本控制台 (ctrl+b) 所做的那样..
  • 是的,只需在 Sublime text2 编辑器上编写并保存您的代码。保存后转到Tools > SublimeREPL > Python > Python-RUN Current file
  • 感谢您的回答!这很有帮助!顺便说一句,该命令有快捷方式吗?
  • @user205820 是的,有一个快捷方式,在 REPL 中有几种运行/传输代码的方法。首先,打开您要用于评估代码的 REPL,切换回带有代码的选项卡,然后点击 Ctrl+,f 将文件传输到 REPL。其他命令可通过转到Tools -> SublimeREPL -> Eval in REPLTransfer to REPL 获得。
  • 当我用 Ruby 或类似的东西编码时,这是否相同?
【解决方案3】:

制作可交互和可重用的 Sublime Python 控制台的步骤:

1) 安装 SublimeREPL 插件:

在顶部栏中 >“工具”>“命令面板”>“包控制:安装包”
搜索:“SublimeREPL”并安装


2) 创建构建系统:

在顶部栏中>“工具”>“构建系统”>“新构建系统”

将文件的所有内容替换为:

{
    "target": "run_existing_window_command", 
    "id": "repl_python_run",
    "file": "config/Python/Main.sublime-menu"
}

在默认的“用户”文件夹中将文件另存为“PythonRepl.sublime-build”。


3) 使控制台具有交互性和可重用性的设置:

|=> 转到“首选项”>“浏览包”

|=> 转到文件夹:SublimeRepl

|=> 编辑:sublimerepl.py

Replace : if view.id() == view_id

With    : if view.name() == view_id:

|=> 转到文件夹:SublimeRepl/config/Python

|=> 编辑:Main.sublime-menu

|=> Under "caption": "Python - RUN current file"

|=> Append : "-i", in "cmd" as : 

        "cmd": ["python", "-u", "$file_basename"],

        "cmd": ["python", "-i", "-u", "$file_basename"],

|=> Add : Before "external_id": "python"

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

|=> Full Code as shown below :
    --------------------------------------------------
    {"command": "repl_open",
     "caption": "Python - RUN current file",
     "id": "repl_python_run",
     "mnemonic": "R",
     "args": {
        "type": "subprocess",
        "encoding": "utf8",
        "cmd": ["python", "-i", "-u", "$file_basename"],
        "cwd": "$file_path",
        "syntax": "Packages/Python/Python.tmLanguage",
        "view_id": "*REPL* [python]",
        "external_id": "python",
        "extend_env": {"PYTHONIOENCODING": "utf-8"}
        }
    },

4) 使用:

4.1) 打开要在 Sublime Text 中运行的 Python 文件。

4.2) 在顶部栏 > “工具” > “构建系统” > “PythonRepl”。

4.3) 构建 Python 文件,方法是选择在顶部栏中 >“工具”>“构建”

使用构建快捷方式(Windows 为 Ctrl+B,Mac 为 ⌘ Command+B)

【讨论】:

  • 这正是我想要的。尝试了许多其他答案,但没有一个不起作用。谢谢你,像魅力一样工作
  • 您还可以将带有输出的交互式选项卡移动到第二列,并停止在两个选项卡之间来回切换:)。
  • 完美答案,对我来说就像一个魅力。 +10
  • @VictorDi 如何将输出移动到第二列。你能添加你的答案吗?
  • @akjprajapati 视图 > 布局 > 列:2,然后将您的 Repl 控制台拖到第二列。
【解决方案4】:

我想扩展@sblair 的回复。 @alexpmil 在评论中询问如何防止 REPL 关闭。

  1. 在 Sublime 中,转到 Sublime Text > Preferences > Browse Packages
  2. 在你的包中,打开SublimeREPL\config\Python\Main.sublime-menu
  3. 找到包含id的部分:repl_python_run
  4. args/cmd 下,添加-i。就是这样。

作为参考,我的如下所示:

{"command": "repl_open",
 "caption": "Python - RUN current file",
 "id": "repl_python_run",
 "mnemonic": "d",
 "args": {
     "type": "subprocess",
     "encoding": "utf8",
     "cmd": ["C:/Python34/python", "-u", "-i", "$file_basename"],
     "cwd": "$file_path",
     "syntax": "Packages/Python/Python.tmLanguage",
     "external_id": "python",
     "extend_env": {"PYTHONIOENCODING": "utf-8"}
 }
}

【讨论】:

  • 您知道如何重新使用已打开的 REPL 选项卡吗? -i 参数确实阻止了 REPL 关闭,但是当我重新构建相同的脚本时,它将在新的 REPL 选项卡中运行。
  • 我和 Seeven Byakko 有同样的问题
  • @Seeven 要恢复相同的选项卡,请在 SublimeREPL\config\Python\Main.sublime-menu 的 "repl_python_run" 命令中添加以下行,就在 "external_id": "python" 参数之前: view_id": "REPL [python]"
猜你喜欢
  • 2020-12-16
  • 2019-12-28
  • 2021-12-02
  • 1970-01-01
  • 2018-08-29
  • 2012-12-25
  • 2017-03-19
  • 2014-03-01
  • 1970-01-01
相关资源
最近更新 更多