web-dev-qa-db-ja.com

emacsでIPythonインタープリターを開く方法は?

EmacsでPython=開発中にIPythonを使用するために、ターミナルを開いてipythonと入力しています。これは、正しい方法ではないようです。

1つには、私のバッファはこのバッファを*ansi-term*としてリストします。これは混乱を招きます。これは、多くの場合、複数のターミナルで終わり、そのうちの1つはPython専用です。 pythonインタプリタをM-x python-Shellで直接開くことができることもわかりました。IPythonにも同様のオプションがあるはずです。

EmacsでIPythonインタープリターを使用するより良い方法はありますか?

Emacs 24とPreludeを使用しています。

20
Eric Wilson

Preludeが何であるかはわかりませんが、最新のEmacs(つまり、Fabianのpythonモードが含まれているEmacs)をインストールできる場合は、次のようにしてPython modeに自分のことを知らせます。優先するインタープリターを選択します。次に、M-x run-pythonを呼び出すだけです。

-

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

-

31
kindahero

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にコードを追加してください。
7
abo-abo

少し遅れているようですが、同様の問題があり、デフォルトとしてipythonを使用したかったpython emacs 24.xのインタープリター。以下は魔法のように機能しました-

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

http://www.flannaghan.com/2013/08/29/ipython-emacs に感謝します。

PS:anacondaがシステムにプリインストールされているようです...

3

Emacs内でipythonを実行するabo-aboのアプローチを試しました。 emacs内でシェル関数をショートカットする非常に洗練された方法です。ただし、シェルではemacs機能が失われます(たとえば、M-x oシェル外)

代わりに、私はEmacsの組み込みシェルコマンド(M-x Shell)の方がはるかに優れています。 Emacsビルトインシェル内でipythonを実行しても、私たち全員が知っていて気に入っているすべてのEmacs機能を使用できます。

2
mortonjt

編集:おっと、以下のプロジェクトはフォークであり、Preludeの公式プロジェクトではありません。ここの2番目の段落はまだ残っています。または、フォークを試すこともできます。

プレリュード すでにipython統合を設定 のように見えます。多分あなたのコピーは古くなっていますか?

M-x run-pythonでipythonが起動しない場合は、(setq python-Shell-interpreter "ipython")をinitファイルに追加して(または単に評価して)、M-x run-pythonをもう一度実行してみてください。 Preludeを使用しない簡単なテストの後、必要なのはそれだけのようです。

0
Randy Morris

これには、emacs-ipythonというEmacs拡張機能を使用できます。

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

1回のキーストロークでコードブロック間のLaTeXバッファー(これを任意のバッファーに変更できます)では、pythonコードをipythonカーネルに送信し、その下の逐語的ブロックに結果を表示します。

0
BBDynSys