如何在emacs中打开IPython解释器?

问题描述 投票:18回答:6

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

首先,我的缓冲区将此缓冲区列为*ansi-term*,这令人困惑,因为我经常最终使用多个终端,其中一个终端专用于Python。我也看到我可以直接用M-x python-shell打开一个python解释器。似乎IPython应该有类似的选择。

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

我正在使用带有Prelude的Emacs 24。

python emacs ipython
6个回答
30
投票

我不知道Prelude是什么,但是如果你可以安装最新的Emacs(即包含Fabian的python模式的Emacs),那么你可以使用以下内容让Python模式知道你喜欢的解释器选择。然后你只需要调用M-x run-python

--

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

--


7
投票

UPD初学者详细说明:

  1. 复制这个: (defun ipython () (interactive) (term "/usr/bin/ipython"))
  2. 首先尝试从终端启动Emacs作为emacs -q-q表示不加载任何自定义代码。这意味着在这种模式下,您的emacs将与我的行为完全一样。
  3. 你现在应该在欢迎屏幕上。按q。
  4. 你现在应该在*scratch*缓冲区。按C-y粘贴从浏览器复制的代码。
  5. 将光标定位在代码的最后,紧跟在最后一个括号之后。
  6. 按C-j评估代码。名字ipython弹出。
  7. 现在你可以像任何其他命令一样执行此命令。 M-x ipython。
  8. 如果您希望此更改成为永久更改,请将代码附加到~/.emacs

2
投票

我已经尝试过abo-abo在emacs中运行ipython的方法。它是一种非常流畅的方法,可以在emacs中快捷地修改shell函数。但是,当你在shell中时,你确实会丢失emacs功能(例如,不能从shell中删除M-x o

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


2
投票

似乎有点晚了,但是也有类似的问题,希望将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似乎有帮助......


0
投票

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

看起来像Prelude already sets up ipython integration。也许你的副本已经过时了?

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


0
投票

您可以使用名为emacs-ipython的Emacs扩展程序。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.