1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pyenv-virtualenv を使った Python 仮想環境の構築方法

1
Posted at

🎯 対象読者

  • 下記のようなコードで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-virtualenvpyenv プラグインの1つで、venvvirtualenvpyenv に統合して管理できます。
  • .python-version により、プロジェクトごとに自動切り替えされるのが最大の利点です。自分は毎回仮想環境を閉じたり開いたりしてました...w

ほぼ備忘録ですが参考になれば幸いです!

参考にした記事:とてもわかりやすかったです。
https://qiita.com/ksato9700/items/5d9eba10fe6b8e064178
https://zenn.dev/takuya_zenn/articles/4204dadc1bbdd7

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?