こういった理由で、解析のときにJupyter notebookを多用するようになった。こちらの情報にもあるようにJupyterでbashやR、または異なるバージョンのpythonなど、複数のカーネルを使う事もできる。これをするとjupyterの中でRの統計検定や作図でデータを見てみることができるのでかなり便利だった。解析で複数のカーネルを使いたいときにも、ファイルを分けずに一つのnotebookにまとめることができる。
ただ、bashを使っているときに問題が起きた。anacondaでいくつか環境を作って、解析用のプログラムを導入していたが、condaの環境をJupyterでコマンドを打って変えようとしても上手く行かずに以下のようなエラーが出てしまう。
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init色々調べていくと、condaで作成した仮想環境をJupyter Notebookで使えるようにする方法があったので設定した。Currently supported shells are: - bash - fish - tcsh - xonsh - zsh - powershell See 'conda init --help' for more information and options. IMPORTANT: You may need to close and restart your shell after running 'conda init'.
設定の概要は、
[1] condaの新しい環境を作る(既存環境が存在する場合は不要)
conda create -n newenv python=3.7 # この環境に入る conda activate newenv # jupyterをインストールする pip install jupyter # jupyter_environment_kernelsをインストールする pip install environment_kernels[2] Jupyterの設定ファイルを生成する。
jupyter notebook --generate-config """ この作業により、ホームディレクトリの下の.jupyterの下に jupyter_notebook_config.pyというファイルができる。 この作業は一回やれば良い。2回目、3回目の環境の設定の時には必要ない """[3] 設定ファイルに、自動でconda環境を読み込む設定を追記する。
エディタでファイルを開き、以下を追記する。
c.NotebookApp.kernel_spec_manager_class = 'environment_kernels.EnvironmentKernelSpecManager' c.EnvironmentKernelSpecManager.env_dirs=['/Users/username/anaconda/envs/']これで、Jupyterを再起動すれば、カーネルとしてnewenvを選択することができるようになる。カーネルは、Kernel > Change kernelから選択できる。
注意点は、それぞれの環境を使えるようにしたければ、その環境でjupyterとjupyter_environment_kernelが入っていないといけないこと。それぞれの環境をactivateして、上の設定を行う。
こうすることで、解析や依存環境ごとに複数の環境を作っていても、それらをjupyterで使えるようになる。
参考:
https://kazusa-pg.com/jupyter-notebook-use-virtual-env-kernel/
https://qiita.com/yoppe/items/38005f415a5b8b884c7d