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

Posted

技术标签:

【中文标题】如何使用 IPython 作为我的 Emacs Python 解释器?【英文标题】:How do I use IPython as my Emacs Python interpreter? 【发布时间】:2010-09-25 04:25:33 【问题描述】:

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

我需要做什么才能让它工作?

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

这个版本的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

您现在可以通过以下方式添加 ein:

M-x package-install <ret> ein

遗憾的是,ein 的 MELPA 版本不适用于 ipython > 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 notebook 服务器了:

M-x ein:notebooklist-open

【讨论】:

【参考方案3】:

python-mode.el 原生支持 IPython。

只要确保 shebang 没有指向其他解释器即可。

在这种情况下:

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

【讨论】:

以上是关于如何使用 IPython 作为我的 Emacs Python 解释器?的主要内容,如果未能解决你的问题,请参考以下文章

当emacs尝试连接到ipython / jupyter服务器时,ein失败

emacs上的IPython会阻止键绑定

Emacs作为图片浏览器

如何在IPython控制台中默认运行文件而不是终端?

.emacs 编辑以始终在终端模式下启动 Emacs?

如何更改 Python 文档字符串的 Emacs 字体?