動機
- Windowsで開発したPythonコードを、Linuxサーバーに移植する可能性がある
- WSL2 + Docker + JupyterLab にしたいが、エックスサーバー(xserver.ne.jp) では Dockerデーモンが起動不可
- WSL2 + Anaconda + JupyterLab でも事足りそう
事前準備
Windows の WSL2 に Ubuntu がインストールされていることが前提。
Anaconda をインストール
AnacondaインストーラーのURLを取得
こちら の Linux の 64-Bit (x86) Installer を右クリックの「リンクのアドレスをコピー」でURLを保存。
Anacondaインストーラーを実行
Windowsターミナルから Ubuntu を開いて、以下コマンドを実行していく。
# $HOME以下に作業フォルダを作成 cd ~ mkdir tmp cd tmp # インストーラーをダウンロード wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh # インストーラーを実行 bash Anaconda3-2021.11-Linux-x86_64.sh # # Enter押下や yes を入力していくとインストール完了 # # tmpフォルダを削除 rm -rf tmp # パスを設定 echo "export PATH=~/anaconda3/bin:\$PATH" >> ~/.bash_profile source ~/.bash_profile # 正常にパス設定されていれば、バージョンが表示される conda -V # conda init で bashrc にconda初期化が記述される conda init bash # 保存 source .bashrc # base環境に入る(conda4.4以降は source activate は非推奨になった) conda activate base # base環境のライブラリ情報を conda_requirements_base.txt に保存しておく # (baseがおかしくなった際も、初期値を確認できるように) # 全てのライブラリが列挙される(conda, pip どちら経由かも把握可能) conda list -e > conda_requirements.txt # base環境から抜ける conda deactivate
Anaconda でTest環境を構築
# Testという名前の仮想環境を作る # pythonバージョンを指定する(さもないと、baseのPython, pipを使用してしまう) conda create -n Test python=3.9 # baseとTest環境が存在しているのを確認 conda info -e
Test環境で JupyterLab をインストール
conda install jupyterlab ではなく、pip install jupyterlab を使用する。
仮想環境内ではcondaではなくpipを使用する理由はこちら。
# Test環境に入る conda activate Test # バージョンを指定してインストール(2022年1月30日時点) pip install jupyterlab==3.2.8 # Test環境からいったん抜ける(そのままだとipythonのバージョンがなぜかbase環境のままだったので) conda deactivate # Test環境に入る conda activate Test # Jupyterカーネルを確認(この時点では、Test環境のカーネルが存在しない) jupyter kernelspec list # Anacondaの仮想環境をJupyterのカーネルに追加 ipython kernel install --user --name=Test # Jupyterカーネルを確認(Test環境のカーネルが作成されている) jupyter kernelspec list
Test環境で JupyterLab を実行
# ローカル作業用なのでトークンは設定しない jupyter lab --NotebookApp.token=''
JupyterLab が起動しているので、ブラウザから http://localhost:8888/ にアクセス。
Notebook の Test を選択すれば、Test環境でPython作業ができる。
備考
- Test環境で使用するライブラリは、Test環境内で pip install する
- Test環境が不要になったら、conda remove -n Test --all
- 仮想環境を作るたびに、ipython kernel install --user --name= する
- もちろん、仮想環境と JupyterLab を連携させる場合のみ
- 既存仮想環境に追加で pip install した際は、別途Kernelを作る必要があるかも(Kernel更新方法不明)
- タスクスケジューラにて、システム起動時に以下などを実行しておき、http://localhost:8888/ をブックマークしておけば簡単に起動できる
- プログラム:wsl.exe
- 引数:cd ~/Project/Jupyter; /home/ユーザー名/anaconda3/envs/仮想環境名/bin/jupyter lab --NotebookApp.token=''