7
13

More than 1 year has passed since last update.

【pip+venv】データサイエンス環境構築 ~ JupyterLabの仮想環境の作業ページをすぐ起動できるようにする

Posted at

経緯

Anacondaの商用利用は制限され、仕事で使いづらくなった。
condaの代わりの仮想環境管理ツールは、pip+venvが良いらしい。
そこで、自分用の手順をまとめた。

本手順で、以下のことができるようになる。

  • プロジェクトごとに仮想環境を作成
  • JupyterLabはショートカットから一発起動
  • カーネルは、Jupyterに追加した仮想環境を選択して実行

想定環境

  • Windows10 Pro
  • Python 3.9.x

作業手順

1.Pythonのインストール

公式ページからダウンロード・インストールする。
https://www.python.org/downloads/
※2022年2月17日時点:今回は最新バージョン(3.10.x)ではなく3.9x.をインストールした。pathlibがインストール出来なかったため。

2.ローカル環境の構築

ローカル環境はjupyterlabやpandasなどよく使うパッケージを入れておく。

作業内容 コマンド 備考
pipの更新 pip install -U pip --user
ローカル環境の構築 pip install jupyterlab numpy pandas scipy scikit-learn statsmodels pandas-profiling matplotlib seaborn jupyter ipykernel tqdm pathlib argparse pillow openpyxl xlrd bokeh holoviews plotly graphviz pydot h5py html5lib json5 pyyaml protobuf pandoc pep8 pytest beautifulsoup4 regex toml urllib3 diff-match-patch isort markdown markdown2 Anacondaでインストールされるパッケージを参考にした。

参考:Anacondaでデフォルト インストールされるパッケージのリスト
https://docs.anaconda.com/anaconda/packages/py3.9_win-64/

3.仮想環境の構築

新しくプロジェクトを作るたびに、以下のコマンドを実行する。

作業 コマンド 備考
(コマンドプロンプト起動) cmd PowerShellで作業中の場合。PowerShellでは、次のactivateスクリプトが実行できないため。
仮想環境の作成 python -m venv venv 環境名をvenvにした理由
・基本的にプロジェクトに仮想環境は1つだけのため。
・プロジェクトルートの仮想環境フォルダ名がvenvとなり、venvを使っているのが一目でわかる。
仮想環境のActivate .\venv\Scripts\activate コマンドプロンプトでは、/をフォルダ区切りとして解釈できないので\で区切った。
(仮想環境にパッケージインストール) 適宜、プロジェクトで使うパッケージを入れること
┗例)データサイエンス想定 pip install jupyterlab numpy pandas scipy scikit-learn statsmodels pandas-profiling matplotlib seaborn jupyter ipykernel tqdm pathlib argparse pillow openpyxl xlrd bokeh holoviews plotly graphviz pydot h5py html5lib json5 pyyaml protobuf pandoc pep8 pytest beautifulsoup4 regex toml urllib3 diff-match-patch isort markdown markdown2 以下のパッケージはエラー出たので入れなかった。 sqlite hdf5 jpeg yaml curl openssl pytorch
仮想環境をjupyterカーネルに追加 ipython kernel install --user --name=(プロジェクト名)
JupyterLab起動 jupyter lab

4.JupyterLab起動用バッチの作成・スタートメニューに登録

Jupyter起動バッチファイルをスタートメニューに登録し、作業開始時にすぐ作業ページを開けるようにしておく。
プロジェクト期間が終わったらスタートメニューから削除すればよい。

作業 コマンド 備考
startup_jupyterlab.bat :カレントディレクトリをプロジェクトルートに変更
cd /d %~dp0
jupyter lab
スタートメニュー登録用のショートカットを作成 image.png ホットキー:右クリック>S
ショートカットのリンク先を編集 cmd /c "(startup_jupyterlab.batへの絶対パス)"
image.png
コマンドプロンプトにbatファイルをパラメータとして渡すようなリンクに修正している。 リンク先をコマンドプロンプトにするとスタートメニューに登録できるようになる。
スタートメニューに登録 image.png

※ローカル環境にjupyterlabをインストールしていないと、バッチを実行しても何も起こらず終了するので注意。

利用手順

1.スタートメニューからJupyter起動
image.png

(プロジェクトフォルダを開いた状態でJupyterLabが立ち上がる)
image.png

2.JupyterLabで使用するカーネルを選択
image.png

おまけ:その他よく使うコマンド

pip関連

作業 コマンド 備考
requirements.txtの作成 pip freeze > requirements.txt

venv関連

作業 コマンド 備考
仮想環境のDeactivate .\venv\Scripts\deactivate
仮想環境の削除 rd venv /s 仮想環境のフォルダをまるごと削除すればよい。 アクセス拒否されて削除できないときは、既存のPythonプロセスによって占有されている場合があるので、一度サインアウトしてから再試行すること。
仮想環境名の変更(削除して作成) rd venv /s
python -m venv (新環境名)
venvには環境名変更コマンドがないので、venvディレクトリを削除して正しい名前で新しいディレクトリを作成する。 削除せずに、フォルダ名とactivate.batを編集する方法もある。
参考:directory - How to rename a virtualenv in Python? - Stack Overflow

参考 📰venv: Python 仮想環境管理 - Qiita

Jupyter関連

作業 コマンド 備考
利用可能なカーネルの表示 jupyter kernelspec list
カーネルを追加 ipython kernel install --user --name=(プロジェクト名)
カーネルを削除 jupyter kernelspec uninstall (プロジェクト名)

参考 Jupyterで複数カーネルを簡単に選択するための設定 - Qiita

7
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
13