在Sublime Text 2中运行IPython Notebook

时间:2014-05-01 15:25:43

标签: plugins editor sublimetext2 ipython ipython-notebook

我是ST2用户(主要是Python),我也使用IPython笔记本。 之前,一切都很好,我可以从ST2命令运行IPython笔记本(ST2然后打开一个新选项卡,还有交互式单元格等。)

从昨天起,我使用pip将ipython升级到2.0版。从那时起,我再也无法在ST2中使用笔记本电脑选项卡了。试图输入命令'打开ipython notebook'到ST命令行什么都不返回:

>>> "open ipython notebook"
'open ipython notebook'

这是兼容性问题吗?也许ST2的插件不再适用于ipython的版本了?我注意到在2.0版本中,ipython服务器主页的链接发生了一些变化。您能否建议如何手动编辑ST2 ipythonnotebook插件的配置以使其再次运行?

>>> open ipython notebook
  File "<string>", line 1
    open ipython notebook
               ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:2)

有几个问题。首先,使用IPython Notebook插件的IPython 2.0 doesn't work。这是在3个月前报道的,开发人员还没有采取任何措施。

其次,即使你没有升级IPython,你也会在错误的位置输入open ipython notebook。您应该在命令选项板中键入它( Ctrl Shift P 在Windows / Linux上, OS OS上的 P ),而不是Sublime控制台( Ctrl `)。

所以,有两种选择。首先是将你的IPython版本降级回你之前使用的版本,一切都会再次运行。这样做的缺点是您将无法访问IPython的最新功能,根据您的工作流程,这可能是也可能不是问题。

第二个选项是通过SublimeREPL插件运行IPython。关于这一点的一个好处是能够在生成它们时看到图像,因为它们在新窗口中弹出。缺点包括目前缺乏连接到运行的笔记本电脑服务器的能力,你不能将你的工作保存为.ipynb文件,以及不同的数据呈现方式 - 它更基于行,而不是单元格 - 基于,例如,如果我定义一个循环:

In [1]: for i in range(10):
   ...:     print(i)

并希望稍后修改并重新运行它,使用箭头键返回历史记录只能逐行进行,而不是逐个单元格。这意味着每次要运行它时都必须重写循环。我主要使用SublimeREPL / IPython来测试代码片段,因为我正在编写以确保他们按照我的意愿行事。

答案 1 :(得分:1)

您可以使用键盘绑定中的以下配置(首选项&gt;键绑定 - 用户)直接调用ipython,而不是运行笔记本:

[{ "keys": ["f9"], "command": "repl_open",
                 "caption": "Python - IPython",
                 "id": "repl_python_ipython",
                 "mnemonic": "p",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "autocomplete_server": true,
                    "cmd": {
                        "osx": ["python", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"],
                        "linux": ["python", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"],
                        "windows": ["python", "-u", "${packages}/SublimeREPL/config/Python/ipy_repl.py"]
                    },
                    "cwd": "$file_path",
                    "syntax": "Packages/Python/Python.tmLanguage",
                    "external_id": "python",
                    "extend_env": {
                        "PYTHONIOENCODING": "utf-8",
                        "SUBLIMEREPL_EDITOR": "$editor"
                    }
                }

                }
]

因此,通过单击F9,它将在新shell上打开ipython