目的

virtualenvwrapperを用いて作成した仮想環境をjupyterで利用するために必要な手順をまとめました.
(仮想環境の作成部はvirtualenvやvenvで行っても問題ありません.ただ,ここではvirtualenvwrapperのコマンドのみを記載します.)
(ここではjupyter notebookを扱っていますが,jupyter labなどでも同様の手順でカーネル追加できるはずです.)

想定環境

    • (何らかの環境に)jupyter (notebook) がインストール済

 

    • virtualenvがインストール済

 

    virtualenvwrapperがインストール済

手順

仮想環境の作成

root環境のインストール済パッケージを用いる場合

$ mkvirtualenv --system-site-packages --python=python3 hoge_env

root環境のインストール済パッケージを用いない場合

$ mkvirtualenv --no-site-packages --python=python3 hoge_env

仮想環境へのipykernelのインストール

もし仮想環境に入っていない場合は,仮想環境に入ります.

$ workon hoge_env

その後,ipykernelをインストールします.

(hoge_env) $ pip install ipykernel

jupyterへのカーネル追加

(hoge_env) $ ipython kernel install --user --name=hoge_env
Installed kernelspec hoge_env in <new kernel path>

カーネル追加の確認

カーネルに追加できているか確認する場合,jupyter notebookを立ち上げる環境(自分の場合root環境)でカーネルのリストを確認します.

$ jupyter kernelspec list
Available kernels:
  hoge_env    <kernel_dir_path>
  ...

このはカーネルの情報が格納されたJupyterによって作成されたディレクトリです.

また,正しく想定した仮想環境のカーネルが追加されているかどうか確認するためには,各カーネルのディレクトリ内にあるkernel.jsonを確認します.

{
 "argv": [
  "<home_path>/.virtualenvs/hoge_env/bin/python3.6",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "hoge_env",
 "language": "python"
}

この”argv”の一行目はkernelの実行に使う環境のpythonのパスを表しており,環境/.virtualenvs/hoge_env/がkernelに追加しようとした仮想環境と一致しているかどうか確認してください.

kernel.jsonに記されたpythonのパスの環境が追加したい仮想環境と異なる場合

kernel.jsonに登録されるpythonのパスは,先ほど

(hoge_env) $ipython kernel install ...

と実行した際にipythonが依存するpythonのパスとなります.
そのため,カーネル登録に用いるipythonが正しく仮想環境にインストールされたipythonであることを確認してください.

(hoge_env) $ which ipython
# OK: <home_path>/.virtualenvs/hoge_env/bin/ipython
# NG: /usr/local/bin/ipython

このような症状は,新しく仮想環境を作成した際に新たにipykernelのインストール

(hoge_env) $ pip install ipykernel

をし忘れた場合に起こりがちです.

jupyter notebookの起動

jupyterを起動したい環境でjupyter notebookを起動します.

$ jupyter notebook

以上の手順で,各notebookからKernel -> Change kernelで仮想環境も指定できるようになっているはずです.

(番外編)

jupyterからのカーネルの削除

カーネル追加の確認と同じ手順でjupyterに追加されたカーネルのディレクトリ(<kernel_dir_path)を調べ,そのディレクトリを削除するだけでOKです.

作成した仮想環境の削除

一旦

(hoge_env) $ deactivate

によって仮想環境から抜けた後,

$ rmvirtualenv hoge_enc

で仮想環境が保存されたディレクトリを削除します.

广告
将在 10 秒后关闭
bannerAds