minisoba blog

プログラミングと株式投資

EmacsでJupyter Notebook

Pythonで開発する場合、コードを書いて、バッファをインタプリタに送り込んで動作確認、といった一連の作業の繰り返しをEmacs上でしています。ただ、コード内容を共有するには少々不便なので、EmacsにJupyter Notebook環境を設定してみました。

開発OSは、Ubuntu 22.04を使用していますが、デフォルトのPython環境へのpipインストールはできないため (っていうかOSから苦情がでる)、仮想環境を作成して開発しています。

Emacs IPython Notebook (EIN)に、Python仮想環境のカーネル認識させるために、以下のパッケージをインストールし、カーネルをインストールするとJupyter Notebook画面上に仮想環境が表示されます。

pip install ipykernel
python -m ipykernel install --user --name=portfolio

portfolioという仮想環境が表示されました。

Emacs設定はこちら⬇

(require 'ein)
(require 'ein-notebook)
(setq ein:worksheet-enable-undo t)
(setq ein:output-area-inlined-images t)

(require 'pyvenv)
(pyvenv-mode t)

;; Set correct Python interpreter
(setq pyvenv-post-activate-hooks
      (list (lambda ()
              (setq python-shell-interpreter (concat pyvenv-virtual-env "bin/python3")))))
(setq pyvenv-post-deactivate-hooks
      (list (lambda ()
              (setq python-shell-interpreter "python3"))))

参考: github.com