venv とは
venv とは Python 公式の仮想環境管理ツール。virtualenv という非常に似たツールがあるが、その一部を公式として切り出して取り込んだものが venv である。よって、類似の virtualenv, pyenv 等よりもよい体験、サポートが期待できる。
Install
bash
$ sudo apt install -y python3-venv
Usage
- 仮想環境を構築する
bash
# 仮想環境の置き場所を作る(名前は任意)
$ cd ~
$ mkdir .venvs
# 仮想環境を構築する
$ cd .venvs
$ python -m venv sampname
- 仮想環境に入る
bash
# 方法1
$ . ~/.venvs/sampname/bin/activate
# 方法2
$ source ~/.venvs/sampname/bin/activate
- 仮想環境に各種パッケージをインストール
bash
# インストールされているパッケージを確認するコマンド(どちらでもよい)
$ pip list
$ pip freeze
# numpy をインストール
$ pip install numpy
# インストールされているパッケージを確認するコマンド(どちらでもよい)
$ pip list
$ pip freeze
- 仮想環境から抜ける
bash
# カレントディレクトリに依存しない
$ deactivate
- 仮想環境を破棄
bash
$ rm -rf ~/.venvs/sampname
Tips
- Pytorch をインストール
- 公式ページからコマンドをコピーし貼り付ける
bash
# 例: Stable(2.0.0), Linux, Pip, Python, CPU
$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
- wheel をインストール
- japanize_matplotlib, torchviz をインストールする際に、error: invalid command 'bdist_wheel' というエラーが生じるため、先にこれをインストールしておくとよい
bash
$ pip install wheel
- 環境の複製(おひっこし)
bash
# requirements.txt に環境(パッケージ一覧)を書き出す
$ pip freeze > requirements.txt
# 新しい仮想環境で requirements.txt の内容を一括インストール
$ pip install -r requirements.txt
---
# cf. バージョン表記を削って書き出す(最新バージョンがインストールされるようになる)
$ pip freeze | cut -d= -f1 > requirements.txt
- PyTorch 事前学習済みモデルを用いる際、デフォルトでは .pth ファイルが~/.cache/torch/hub/checkpoints/ 配下に生成される
- ファイル生成場所を変更したい場合は、環境変数 $TORCH_HOME を設定する等いくつか方法がある(「ダウンロードしたモデルはどこに保存されますか?」のセクションを参照)
ひと言
Anaconda は pip と競合するため、嫌いですあまり好きではありません。venv や Docker で環境を管理するのがよいと思います。ご清覧ありがとうございました。