tropicbirdのブログ

備忘録です。

venvで作成した仮想環境をJupyterで正常に動作させる方法。

はじめに

AnacondaでインストールしたJupyter(及びIPython)では、venvで作成したPythonの仮想環境をJupyterのカーネルに接続しても、仮想環境のPython(及びライブラリ)は参照されず、Anacondaがインストールされている本体環境のPython(及びライブラリ)が参照される。そのため、Jupyter上で仮想環境を使うことはできない(※見た目上は動いてそうだけど、実際は本体環境のPythonを参照してる。)。

解決策

Anacondaは使用せずに、本体環境に直接Jupyter(Notebook、Lab)をインストールすると、この問題は解決できた。

方法

0.Vagrant で新しく仮想開発環境(以降、「本体環境」という)を作る。

・略
vagrantの仮想開発環境にSSHで接続する際に、ポート名を設定(例えば8080)しておくとJupyterを開く際に便利。

C:\Users\*WinUSERNAME\*仮想開発環境フォルダ>vagrant ssh -- -L 8080:localhost:8080
1.本体環境でPythonをインストールする。

・略

2.本体環境でJupyter Notebookをインストールする。

以下のコマンドを本体環境のターミナルに入力し、Jupyter Notebookをインストールする。

vagrant@ubuntu1804:~$ pip3 install jupyter


もしインストール中にエラーが出れば、以下のコマンドを入力する。

vagrant@ubuntu1804:~$ pip3 install --user jupyter
3.本体環境でJupyter Labをインストールする。

以下のコマンドを本体環境のターミナルに入力し、Jupyter Labをインストールする。

vagrant@ubuntu1804:~$ pip3 install jupyterlab


もしインストール中にエラーが出れば、以下のコマンドを入力する。

vagrant@ubuntu1804:~$ pip3 install --user jupyterlab
4.本体環境でPythonの標準モジュールvenvを使用して、Pythonの仮想環境を作成する。

↓過去記事参照
tropicbird.hatenablog.com

5.4で作成しPythonの仮想環境をJupyterのカーネルに追加する。

↓過去記事参照
tropicbird.hatenablog.com

6.Jupyter (NotebookまたはLab)を開く

・Jupyter Notebookの場合

vagrant@ubuntu1804:~$ jupyter notebook

または

vagrant@ubuntu1804:~$ jupyter notebook --ip=0.0.0.0 --port=8080

・ Jupyter Labの場合

vagrant@ubuntu1804:~$ jupyter lab

または

vagrant@ubuntu1804:~$ jupyter lab --ip=0.0.0.0 --port=8080

・出てきたURL(例:http://127.0.0.1:8080/?token=xxxxxxxxxxxxxxxxxxxx)をブラウザ(Chromeなど)に張り付けるとJupyterが開く。

7.Jupyter上でPythonの仮想環境が正常に動作しているか確認する。

・仮想環境に入っていないモジュール(例えばnumpy)を本体環境でインストールする。
・Jupyterを開く。
・Jupyterのnotebook上で、「import numpy」が本体環境のカーネルではインポートでき、仮想環境のカーネルでインポートできなければOK。
(↑Jupyter上でカーネル間のPythonがそれぞれ独立しているということ。つまりJupyter上でPythonの仮想環境が正常に動作しているということ。)