25

为了在 Emacs 中进行 Python 开发期间使用 IPython,我一直在打开一个终端,然后输入ipython. 这似乎不是正确的方法。

一方面,我的缓冲区将此缓冲区列为*ansi-term*,这令人困惑,因为我经常以多个终端结束,其中一个专用于 Python。我还看到我可以直接用M-x python-shell. 似乎 IPython 应该有一个类似的选项。

有没有更好的方法在 Emacs 中使用 IPython 解释器?

我将 Emacs 24 与 Prelude 一起使用。

4

6 回答 6

38

我不知道 Prelude 是什么,但是如果你可以安装最新的 Emacs(即包含 Fabian 的 python-mode 的 Emacs),那么你可以使用以下命令让 Python 模式知道你首选的解释器。然后你只需要打电话M-x run-python

--

(when (executable-find "ipython")
  (setq python-shell-interpreter "ipython"))

--

于 2013-07-23T22:48:43.003 回答
8

UPD 初学者详细说明:

  1. 复制这个:

    (defun ipython ()
        (interactive)
        (term "/usr/bin/ipython"))
    
  2. 首先尝试emacs -q从终端启动 Emacs。 -q表示不加载任何自定义代码。这意味着在这种模式下,您的 emacs 的行为将与我的完全一样。

  3. 您现在应该在欢迎屏幕上。按q
  4. 您现在应该在*scratch*缓冲区中。按C-y粘贴您从浏览器复制的代码。
  5. 将光标定位在代码的最末尾,就在最后一个括号之后。
  6. 按下C-j以评估代码。名字ipython弹出来。
  7. 现在您可以像执行任何其他命令一样执行此命令,例如M-x ipython.
  8. 如果您希望此更改成为永久性更改,请将代码附加到您的~/.emacs.
于 2013-07-23T17:32:21.340 回答
3

似乎有点晚了,但是也遇到了类似的问题,希望将 ipython 作为我的 emacs 24.x 的默认 python 解释器。以下工作就像魔术一样 -

(require 'python)
(setq python-shell-interpreter "ipython")
(setq python-shell-interpreter-args "--pylab")

感谢http://www.flannaghan.com/2013/08/29/ipython-emacs拯救了我的一天,也希望是你的。

PS:似乎在您的系统中预装了 anaconda 有助于...

于 2015-08-19T05:12:40.060 回答
2

我已经尝试过 abo-abo 在 emacs 中运行 ipython 的方法。它是在 emacs 中快捷方式 shell 函数的一种非常巧妙的方式。但是,当您在 shell 中时,您确实会失去 emacs 功能(例如,不能M-x o离开 shell)

相反,我个人认为使用 Emacs 内置的 shell 命令 ( M-x shell) 要好得多。您可以在 Emacs 内置 shell 中运行 ipython,并且仍然拥有我们都知道和喜爱的所有 Emacs 功能。

于 2014-09-28T19:41:49.097 回答
0

为此,您可以使用我的名为 emacs-ipython 的 Emacs 扩展。

https://github.com/burakbayramli/emacs-ipython

在代码块之间的 LaTeX 缓冲区(您可以将其更改为任何缓冲区)中,一键将 python 代码发送到 ipython 内核并在下面的逐字块中显示结果。

于 2014-10-02T08:13:59.837 回答
0

编辑:哎呀,下面的项目是一个分支,而不是官方的 Prelude 项目。这里的第二段仍然有效。或者你可以试试叉子。

看起来 Prelude已经设置了 ipython 集成。也许你的副本已经过时了?

如果M-x run-python没有启动 ipython,请尝试添加(setq python-shell-interpreter "ipython")到您的 init 文件(或只是评估它)并M-x run-python再次运行。在没有 Prelude 的情况下进行快速测试后,这似乎是所有必要的。

于 2013-07-23T17:54:54.480 回答