我如何使用IPython作为我的Emacs Python解释器?

时间:2008-12-03 17:56:58

标签: python macos configuration emacs ipython

我在OS X上运行Emacs 22.1.1和IPython 0.9.1,我希望能够在IPython解释器中根据需要从当前缓冲区运行Python代码的行/方法/片段。

我需要做些什么来实现这个目标?

3 个答案:

答案 0 :(得分:4)

ipython也不会加载与emacs 23.1.1一起使用的官方python.el

答案 1 :(得分:4)

此版本的emacs for mac:

http://emacsformacosx.com

预装了package.el。这允许您自动安装emacs包。有一个名为ein的包:

http://tkf.github.io/emacs-ipython-notebook/

这使得与emacs(包括笔记本)的ipython交互变得容易。

但是,从上面的emacs版本24.3开始,ein不在默认包存储库中。如果您添加更多存储库,请按照:

http://www.emacswiki.org/emacs/ELPA

即,将其添加到〜/ .emacs文件中:

(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
                     ("marmalade" . "http://marmalade-repo.org/packages/")
                     ("melpa" . "http://melpa.milkbox.net/packages/")))

然后致电

M-x package-refresh-contents

您现在可以添加以下内容:

M-x package-install <ret> ein

唉,MELA版本的ein不适用于ipython&gt; 1.x因此,如果您使用的是ipython 2.x,则需要更新的ein:

https://github.com/tkf/emacs-ipython-notebook/issues/137

所以克隆:

git clone https://github.com/millejoh/emacs-ipython-notebook.git

将lisp子目录复制到合理的地方:

cp -r emacs-ipython-notebook/lisp ~/.emacs.d/einv2

然后将其添加到您的emacs加载路径并加载它,方法是将其添加到〜/ .emacs:

(add-to-list 'load-path "~/.emacs.d/einv2")
  (require 'ein)

最后,摆脱旧的ein,这将留下依赖关系:

M-x package-list-packages

滚动到包列表中的ein,然后:

M-x package-menu-mark-delete
M-x package-menu-execute

重新启动emacs,您可以连接到ipython笔记本服务器:

M-x ein:notebooklist-open

答案 2 :(得分:0)

python-mode.el原生支持IPython。

请确保shebang不指向另一位翻译。

在这种情况下:

  • 调用结尾为“-ipython”的命令,该命令将覆盖shebang
  • 将“ipython”自定义为默认解释器并设置`py-force-py-shell-name-p'。这也可以通过菜单完成 蟒/.../开关