ぶろとよ

ネットワーク系クラウドエンジニア(AWS)の技術ブログ。自動化に興味があるためAWS CLIを勉強&アウトプット中。

macOSでPython環境構築 後編:venvでPython仮想環境を作成する

Windowsメインで使用しているけれどmacOSの勉強中です。
macOSでPython環境を構築したので備忘的なメモを残します。

venvでの仮想環境は少し時間が立つと何の環境を作ったのか忘れるので、コマンド実行すると環境を選択できるように作ってみました(汗

macOSでPython環境構築

  • 前編:pyenvで複数バージョンのPythonをインストールする
  • 後編:venvでPython仮想環境を作成する
    • 本記事です

目次

検証環境

  • 検証日: 2024/01/31
  • 実行環境
    • PC
      • Mac mini M2チップ 2023
      • macOS Sonoma 14.2.1, Build 23C71
        • zsh 5.9 (x86_64-apple-darwin23.0)
        • Homebrew 4.2.8
        • pyenv 2.3.35
          • Python 3.10.13
          • Python 3.11.7
          • Python 3.12.1

注意事項

  • コマンド内の変数やパラメータやは検証で使用したものを記載しています。ご自身の環境に合わせ、書き換えて使用してください。
  • 個人で検証しているため実行結果に責任は持てません。必ずご自身でも検証してから使用してください。


1. ディレクトリ構造/仮想環境名

ディレクトリ構造はこのようにしています。

  1. ホームにvenv仮想環境専用の envs ディレクトリを作成。
    • ~/envs
  2. envs ディレクトリ内へ仮想環境毎にディレクトリを作成。
    • ※既に2つ作成済み。今回は1つ追加する。
    • ~/envs/bluesky
    • ~/envs/boto3
  3. 各ディレクトリ内へ仮想環境を作成。仮想環境名は .venv で統一。
    • ~/envs/bluesky/.venv
    • ~/envs/boto3/.venv


2. venv仮想環境の作成

今回は 仮想環境名 hatena を作成します。

2.1. ~/envs へ仮想環境用のディレクトリを作成する。

# ディレクトリの作成
DIRECTORY="hatena"
mkdir -p ~/envs/$DIRECTORY
# 作成したディレクトリへ移動
cd ~/envs/$DIRECTORY

2.2. 仮想環境で使うPythonバージョンを指定する

macOSにpyenvでインストールしたPythonの一覧を確認し、仮想環境で使うPythonバージョンを localコマンドで指定する。

# 変更前の確認
pyenv versions
python --version
# ディレクトリ以下で使用するPythonバージョンを指定する
pyenv local 3.10.13
# 変更後の確認
pyenv versions
python --version
which python
# 実行結果
hatena % pyenv versions

  system
  3.10.13
  3.11.7
* 3.12.1 (set by /Users/USERNAME/.pyenv/version)
hatena % python --version

Python 3.12.1

hatena % pyenv local 3.10.13

hatena % pyenv versions

  system
* 3.10.13 (set by /Users/USERNAME/envs/hatena/.python-version)
  3.11.7
  3.12.1
hatena % python --version

Python 3.10.13

hatena % which python

/Users/USERNAME/.pyenv/shims/python

localコマンドは実行したディレクトリ配下で使用するPythonバージョンのみを変更するため、仮想環境をディレクトリ毎に分けることで有効に動作する。
1つ上のディレクトリに戻ってPythonバージョンを確認すると、globalコマンドで指定したPythonバージョンになる。

hatena % cd ..
envs % python --version

Python 3.12.1

2.3. 仮想環境を作成する(名前は .venv で統一)

仮想環境名は .venv で統一しています。

cd ~/envs/$DIRECTORY
python -m venv .venv

2.4. 作成した仮想環境の有効化

source .venv/bin/activate

python --version
which python
# 実行結果
hatena % source .venv/bin/activate

(.venv) hatena % python --version

Python 3.10.13
(.venv) hatena % which python

/Users/USERNAME/envs/hatena/.venv/bin/python

2.5. 仮想環境でpipとsetuptoolsを最新化する

pip list
python -m pip install --upgrade pip
pip install --upgrade setuptools

2.6. 仮想環境から抜ける

deactivate
# 実行結果
(.venv) hatena % deactivate
hatena %


3. 次回以降、作成した仮想環境へ入る

  1. envsディレクトリへ移動
  2. envsディレクトリ内の仮想環境ディレクトリを番号で表示
  3. 番号を入力してください
  4. 選択した仮想環境ディレクトリへ移動
  5. 仮想環境を有効化する
cd ~/envs/ && select DIRECTORY in *; do [[ -d $DIRECTORY ]] && break; done && cd ~/envs/$DIRECTORY && source .venv/bin/activate
    # 番号の選択をします。仮想環境を有効化するディレクトリを選択してください。

# 実行結果
~ % cd ~/envs/ && select DIRECTORY in *; do [[ -d $DIRECTORY ]] && break; done && cd ~/envs/$DIRECTORY && source .venv/bin/activate
1) bluesky  2) boto3    3) hatena
?# 3
(.venv) hatena %