我在 OS X 上运行 Emacs 22.1.1 和 IPython 0.9.1,我希望能够在 IPython 解释器中按需从我当前的缓冲区运行 Python 代码的行/方法/片段。
我需要做什么才能使它正常工作?
我在 OS X 上运行 Emacs 22.1.1 和 IPython 0.9.1,我希望能够在 IPython 解释器中按需从我当前的缓冲区运行 Python 代码的行/方法/片段。
我需要做什么才能使它正常工作?
此版本的 mac 版 emacs:
预装了 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
ipython 也不会加载与 emacs 23.1.1 一起使用的官方 python.el
python-mode.el 原生支持 IPython。
只要确保 shebang 没有指向另一个解释器。
在这种情况下: