Skip to content

macOSにPythonをインストールして仮想環境をセットアップする方法

🎫 コンテンツは 2025-06-20 に以下のプラットフォームで検証されました
✅ macOS 14.2.1

Pythonは、Web開発、データサイエンス、自動化、人工知能など、幅広く使用される汎用性の高い高水準プログラミング言語です。macOSにはPythonがプリインストールされていますが、独自のPythonバージョンをインストールして管理する説得力のある理由があります。

macOSのネイティブPython

macOSにはPythonがプリインストールされていますが、このシステムPythonについて知っておくべき重要なことがいくつかあります:

sh
# システムPythonのバージョンを確認
python3 --version
# 出力: Python 3.9.6(またはmacOSのバージョンによって類似のもの)

# インストール場所を確認
which python3
# 出力: /usr/bin/python3

システムPythonは主にmacOSの内部使用を目的としており、いくつかの制限があります:

  • 古いバージョン:システムPythonは最新リリースより数バージョン古いことが多い
  • 限られた権限:パッケージをグローバルにインストールするにはsudoが必要で、システム機能を破壊する可能性がある
  • バージョン切り替えができない:Appleが提供するバージョンに固定される
  • 潜在的な競合:システムアップデートによってPythonのインストールが変更または置き換えられる可能性がある

なぜ別のPythonをインストールするのか?

独自のPythonディストリビューションをインストールすることで、いくつかの利点があります:

  1. 最新バージョン:最新のPython機能とセキュリティアップデートへのアクセス
  2. 複数バージョン:異なるプロジェクトに対して異なるPythonバージョンをインストールして切り替え可能
  3. 安全なパッケージ管理:システムPythonに影響を与えずにパッケージをインストール
  4. より良い開発体験:Python環境を完全にコントロール
  5. 一貫したデプロイメント:開発環境を本番システムと一致させる

ベストプラクティス:uvの使用

uvはRustで書かれた非常に高速なPythonパッケージおよびプロジェクトマネージャーです。pippip-toolspipxpoetrypyenvvirtualenvなどの複数のツールを置き換えるように設計されています。uvが推奨される理由は次のとおりです:

  • 🚀 単一ツール:複数のPythonツールを1つの統一されたインターフェースで置き換え
  • ⚡️ 速度:従来のpipなどのツールより10〜100倍高速
  • 🐍 Python管理:Pythonバージョンをシームレスにインストールおよび管理
  • 🗂️ プロジェクト管理:ユニバーサルロックファイルによる包括的なプロジェクト管理
  • 🔩 使い慣れたインターフェース:簡単に移行できるpip互換インターフェースを含む

uvのインストール

macOSにuvをインストールする最も簡単な方法は、公式インストーラーを使用することです:

sh
curl -LsSf https://astral.sh/uv/install.sh | sh

または、Homebrewを使用してインストールすることもできます:

sh
brew install uv

すでにPythonとpipがインストールされている場合:

sh
pip install uv

インストール後、ターミナルを再起動するか、次のコマンドを実行します:

sh
source ~/.zshrc

uvでPythonをインストールする

uvがインストールされたら、簡単にPythonバージョンをインストールできます:

sh
# 最新のPythonバージョンをインストール
uv python install

# 特定のPythonバージョンをインストール
uv python install 3.12
uv python install 3.11
uv python install 3.10

# 利用可能なPythonバージョンを一覧表示
uv python list

システムのデフォルトPythonバージョンを設定することもできます:

sh
# Python 3.12をデフォルトに設定
uv python pin 3.12

仮想環境の理解

仮想環境は、他のプロジェクトやシステムPythonに影響を与えずに特定のプロジェクト用のパッケージをインストールできる、分離されたPython環境です。各プロジェクト用の別々の「サンドボックス」と考えてください。

仮想環境が必要な理由

  1. 依存関係の分離:異なるプロジェクトが同じパッケージの異なるバージョンを使用可能
  2. クリーンな開発:プロジェクト依存関係間の競合を回避
  3. 再現可能なビルド:異なるマシン間で一貫した環境を確保
  4. 簡単なクリーンアップ:他のプロジェクトに影響を与えずに仮想環境を削除
  5. 権限管理:管理者権限を必要とせずにパッケージをインストール

例えば、プロジェクトAではDjango 4.0が必要で、プロジェクトBではDjango 5.0が必要な場合、仮想環境がなければこれらは競合します。

uvで仮想環境をセットアップする

uvは仮想環境管理を信じられないほど簡単かつ高速にします。

新しいプロジェクトの作成

最も簡単な方法は、新しいプロジェクトから始めることです:

sh
# 新しいPythonプロジェクトを作成
uv init my-project
cd my-project

# これにより自動的に仮想環境と基本的なプロジェクト構造が作成されます

既存のプロジェクトでの作業

既存のプロジェクトでは、仮想環境を作成および管理できます:

sh
# 現在のディレクトリに仮想環境を作成
uv venv

# 特定のPythonバージョンで仮想環境を作成
uv venv --python 3.12

# カスタムの場所に仮想環境を作成
uv venv my-custom-env

仮想環境のアクティベート

sh
# 仮想環境をアクティベート(従来の方法)
source .venv/bin/activate

# またはuvの組み込みコマンドランナーを使用(推奨)
uv run python --version
uv run python script.py

パッケージのインストール

sh
# プロジェクトにパッケージを追加(自動的に仮想環境を管理)
uv add requests
uv add django==5.0

# 開発依存関係をインストール
uv add --dev pytest black ruff

# requirements.txtからインストール
uv pip install -r requirements.txt

# 仮想環境でコマンドを実行
uv run python -m django startproject mysite

依存関係の管理

uvは自動的にpyproject.tomlファイルとuv.lockファイルを作成および維持します:

sh
# 依存関係を同期(ロックファイルに従ってパッケージをインストール/更新)
uv sync

# すべての依存関係を更新
uv lock --upgrade

# インストールされたパッケージを表示
uv pip list

ワークフロー例

新しいPythonプロジェクトをセットアップする完全な例を示します:

sh
# 新しいプロジェクトを作成
uv init data-analysis-project
cd data-analysis-project

# 依存関係を追加
uv add pandas numpy matplotlib jupyter

# Pythonスクリプトを作成
echo "import pandas as pd; print('Hello Python!')" > analysis.py

# スクリプトを実行
uv run python analysis.py

# Jupyterノートブックを起動
uv run jupyter notebook

代替インストール方法

uvが推奨されるアプローチですが、他の一般的な方法もあります:

オプション1:公式Pythonインストーラー

python.orgからダウンロードします。これはPythonをグローバルにインストールしますが、バージョン管理は提供しません。

オプション2:Homebrew

sh
brew install [email protected]

オプション3:pyenv(従来のバージョンマネージャー)

sh
# pyenvをインストール
brew install pyenv

# Pythonバージョンをインストール
pyenv install 3.12.0
pyenv global 3.12.0

ただし、uvは一般的にこれらの代替手段よりも高速で包括的です。

まとめ

  • macOSにはPythonが付属していますが、開発には独自のものをインストールする方が良い
  • uvはmacOSでのPythonとパッケージ管理に推奨されるツール
  • 仮想環境はプロジェクト依存関係を分離するために不可欠
  • uvは単一の高速ツールでPython開発ワークフロー全体を簡素化
  • uv initで新しいプロジェクトを開始し、uv addで依存関係を管理

uvを使用すると、Pythonのインストールからプロジェクト管理まで、すべてを1つのツールで処理する、モダンで高速かつ包括的なPython開発体験が得られます。