🎯 対象読者
- 下記のようなコードでPython 標準の venv モジュールで仮想環境を構築してた自分のような方々
python -m venv venv
source venv/bin/activate
便利でわかりやすい仮想環境の構築方法があったので紹介します
1. インストール
brew install pyenv pyenv-virtualenv
2. Python バージョンをインストール
pyenv install 3.11.4
※任意のバージョンで。pyenv install --list で確認可能。
3. 仮想環境の作成
pyenv virtualenv 3.11.4 myenv
-
myenvは仮想環境の任意の名前です(プロジェクト名などが多い)
4. 仮想環境の有効化
pyenv activate myenv
以降、そのシェルセッション内では myenv 仮想環境が有効になります。
5. 仮想環境の自動切り替え(おすすめ)
プロジェクトディレクトリに .python-version ファイルを配置
echo myenv > .python-version
これにより、そのディレクトリに cd するだけで pyenv が仮想環境を自動で有効化してくれます。自動化がうまくされない方はshellの設定ファイルを確認して見てください
自分はfish shellを使用しています。参考に載せておきます。
set -Ux PYENV_ROOT $HOME/.pyenv
set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths
status --is-interactive; and pyenv init - | source
status --is-interactive; and pyenv virtualenv-init - | source
① pyenv 本体の場所を示す変数を設定
set -Ux PYENV_ROOT $HOME/.pyenv
② pyenv コマンドを使えるように PATH を通す
set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths
③ pyenv の shim 機構を有効化
→ python や pip などのコマンドが ~/.pyenv/shims/ 経由で動くようになる
status --is-interactive; and pyenv init - | source
④ pyenv-virtualenv の仮想環境自動切り替え機能を有効化
→ .python-version を検出して自動で activate/deactivate が行われる
status --is-interactive; and pyenv virtualenv-init - | source
6. 仮想環境の無効化(必要なら)
pyenv deactivate
ただし .python-version を使っている場合は、そのディレクトリから出るだけで自動解除されるため、通常は不要です。
7. おまけ:パッケージのインストール
仮想環境が有効な状態であれば、以下でライブラリをローカルにインストールできます:
pip install -r requirements.txt
逆にrequirements.txtに使用ライブラリをまとめたい時
pip freeze > requirements.txt
まとめコマンド一覧
brew install pyenv pyenv-virtualenv
pyenv install 3.11.4
pyenv virtualenv 3.11.4 myenv
pyenv activate myenv
# 推奨
echo myenv > .python-version
# 任意(必要時のみ)
pyenv deactivate
# 任意(必要時のみ)
pip install -r requirements.txt
pip freeze > requirements.txt
💡補足
-
pyenv-virtualenvはpyenvプラグインの1つで、venvやvirtualenvをpyenvに統合して管理できます。 -
.python-versionにより、プロジェクトごとに自動切り替えされるのが最大の利点です。自分は毎回仮想環境を閉じたり開いたりしてました...w
ほぼ備忘録ですが参考になれば幸いです!
参考にした記事:とてもわかりやすかったです。
https://qiita.com/ksato9700/items/5d9eba10fe6b8e064178
https://zenn.dev/takuya_zenn/articles/4204dadc1bbdd7