为了在Emacs的Python开发过程中使用IPython,我一直在打开一个终端,并输入ipython
。这似乎不是正确的做法。
首先,我的缓冲区将此缓冲区列为*ansi-term*
,这让人感到困惑,因为我经常会遇到多个终端,其中一个终端专用于Python。我还看到我可以直接用M-x python-shell
打开python解释器。似乎IPython应该有类似的选项。
有没有更好的方法在Emacs中使用IPython解释器?
我正在使用带有Prelude的Emacs 24。
答案 0 :(得分:30)
我不知道Prelude是什么,但如果您可以安装最新的Emacs(即包含Fabian的python模式的Emacs),那么您可以使用以下内容让Python模式知道您首选的解释器。然后你只需要致电M-x run-python
:
-
(when (executable-find "ipython")
(setq python-shell-interpreter "ipython"))
-
答案 1 :(得分:7)
复制此内容:
(defun ipython ()
(interactive)
(term "/usr/bin/ipython"))
首先尝试从终端启动Emacs作为emacs -q
。
-q
表示不加载任何自定义代码。这意味着在这种模式下
你的emacs的行为与我的完全一样。
*scratch*
缓冲区中。按 C-y 进行粘贴
您从浏览器中复制的代码。ipython
。~/.emacs
。答案 2 :(得分:2)
我已经尝试过abo-abo在emacs中运行ipython的方法。它是一种非常流畅的方法,可以在emacs中快捷地修改shell函数。但是,当你在shell中时,你确实会丢失emacs功能(例如,不能M-x o
出shell)
相反,我个人认为使用Emacs内置shell命令(M-x shell
)要好得多。你可以在Emacs内置shell中运行ipython,并且仍然拥有我们都知道和喜爱的所有Emacs功能。
答案 3 :(得分: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似乎有帮助...
答案 4 :(得分:0)
编辑:哎呀,下面的项目是一个分支,而不是正式的Prelude项目。这里的第二段仍然有效。或者你可以试试叉子。
看起来像Prelude already sets up ipython integration。也许你的副本已经过时了?
如果M-x run-python
未启动ipython,请尝试将(setq python-shell-interpreter "ipython")
添加到您的init文件(或仅评估它)并再次运行M-x run-python
。在没有Prelude的快速测试之后,这似乎是必要的。
答案 5 :(得分:0)
您可以使用名为emacs-ipython的我的Emacs扩展程序。
https://github.com/burakbayramli/emacs-ipython
在一个LaTeX缓冲区(您可以将其更改为任何缓冲区)之间,只需一次按键,它就会将python代码发送到ipython内核,并在下面的逐字块中显示结果。