- MacでPython環境を構築したい
- Pythonが実行できるようにしたい
このような方に向けて書きました。
そもそもMacには最初からPythonが入っていますが、次の理由から使いません。
- macOS 本体が内部で使うためのもの
- バージョンが古い、勝手に消すと OS に悪影響がある
- python コマンドが 2系/3系どちらを指すか曖昧
そこでこの記事では、次のようなモダンな構築で環境を作ります。
- バージョン管理:pyenv
- パッケージ管理 & 仮想環境管理:Poetry
Nommy僕がこれまでに参加したプロジェクトは、ほとんどこの構成でした!
1. Homebrew をインストールする
Homebrewは、色々なソフトウェアをインストールするために必要な管理ツールです。
すでにインストールされていることも多いですが、まだの方はインストールしましょう。



ここでは「インストールされているかの確認」も行なっていきます。
1-1. Homebrew が入っているか確認
次のコマンドで、Homebrewが入っているかを確認しましょう。
brew -vバージョンが表示されれば、Homebrewはもう入っているのでOKです。
一方でcommand not foundと表示されたら、次の1-2に進んでインストールをしましょう。
1-2. Homebrew のインストール
次のコマンドを実行します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"ちょっとわかりづらいのですが、インストール後に指示が出てきます。
M1チップ以降(Appleシリコン)だと、次のようなコマンドを実行する場合が多いです。
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"最後にHomebrewが正常にインストールされたか確認しましょう。
brew -vバージョンが表示されれば、インストール成功です。
2. pyenv をインストールする
Homebrewを使って、pyenvをインストールしていきます。
pyenvは、同じPC上に複数のPythonをインストールできたり、使うバージョンを入れ替えたりできるツールです。
2-1. Homebrew で pyenv を入れる
インストールコマンドを実行しましょう。
brew install pyenv2-2. シェル設定に pyenv を追加
~/.zshrcに、次の内容を追記します。
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"追記した内容を反映するために、次のコマンドを実行。
source ~/.zshrc最後にpyenvがインストールされたか確認します。
pyenv -vバージョン情報が表示されれば、pyenvのインストールは完了しています。
3. pyenv で Python 本体をインストール
Macに直接ではなく、pyenv経由でPythonをインストールします。
3-1. インストール可能なバージョン一覧
次のコマンドで、pyenvでインストールできるPyhtonのバージョンが表示されます。
pyenv install --listこの中から、インストールするバージョンを選びましょう。
3-2. Python をインストール
Pythonをインストールするコマンドは、以下です。
pyenv install 3.12上記では3.12系の最新バージョンがインストールされます。
3-3. デフォルトの Python を設定
デフォルトで使うPythonのバージョンを指定しましょう。
pyenv global 3.12ここでは先ほどの3.12系の最新バージョンをデフォルトにしました。
最後にPythonのバージョンを確認しましょう。
python -V
which python以下のように表示されていれば、インストールは成功です。
| 実行コマンド | 結果例 |
|---|---|
python -V | Python 3.12.3 |
which python | ~/.pyenv/shims/python |
ここまでくると、ローカルでPythonが実行できるようになっています。
4. Poetry をインストールする
Poetry は次のようなツールです。
- 依存パッケージの管理
- 仮想環境の管理
pyproject.tomlベースのモダンなプロジェクト管理
つまり、pip, venvの役割をPoetryひとつで実現できるという便利ツールです。
4-1. インストール方法
いくつか方法がありますが、シンプルなのは 公式インストーラ を使うやり方です。
ターミナルで次のコマンドを実行します。
curl -sSL https://install.python-poetry.org | python3 -インストール後、パスを通すために ~/.zshrc に追記します。
インストール完了メッセージに出てきた内容をコピペでOKです。
よくある例としては、次のようなものです。
export PATH="$HOME/.local/bin:$PATH"~/.zshrc に追記した内容を反映しましょう。
source ~/.zshrcPoetryが正常にインストールできたか、確認をします。
poetry --versionバージョンが表示されれば、インストールは成功です。
4-2. プロジェクト内に仮想環境を作成する
次のコマンドを実行して、プロジェクトフォルダ内に仮想環境を作る設定としましょう。
poetry config virtualenvs.in-project trueこれにより、プロジェクトフォルダ内に.venv/というフォルダが作成されます。
ライブラリのインストールを行うと.venv/の中に順次追加されていき、他のプロジェクトと環境の分離ができるようになります。
VS Code の .code-workspace 設定を追加する
プロジェクト直下に my-project.code-workspace を作成します。
my-project/
├── my_project/
├── tests/
├── pyproject.toml
├── .venv/
└── my-project.code-workspace ← これを追加my-project.code-workspace
my-project.code-workspaceの内容は、例えば次のようにします。
{
"folders": [
{
"path": "."
}
],
"settings": {
// 保存時にフォーマット
"editor.formatOnSave": true,
// 不要なファイルを非表示
"files.exclude": {
"**/*.pyc": true,
"**/.pytest_cache": true,
"**/.mypy_cache": true,
"**/.DS_Store": true,
"**/__pycache__": true
},
// Python インタプリタ: Poetry .venv
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
// Python 設定
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
}
}
},
"extensions": {
"recommendations": [
"ms-python.python",
"ms-python.black-formatter",
"ms-python.isort",
"mechatroner.rainbow-csv"
]
}
}pyproject.toml
black, isortの各種設定もしておきましょう。
[project]
# 省略
[tool.poetry]
# 省略
[build-system]
# 省略
[tool.poetry.group.dev.dependencies]
# 省略
[tool.black]
line-length = 120
target-version = ['py312']
include = '\.pyi?$'
extend-exclude = '''
/(
# directories
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| build
| dist
)/
'''
[tool.isort]
profile = "black"
line_length = 120
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
skip_glob = ["**/migrations/**", "**/__pycache__/**"]まとめ:Mac × Python × Poetry のモダン環境
お疲れさまでした!
本記事の内容を軽くおさらいしておきます。
- macOS 標準の Python は触らない
- pyenv で自分用の Python を安全に管理
- Poetry で
- プロジェクトごとに仮想環境を自動管理
- 依存パッケージを
pyproject.tomlで一元管理
- VS Code からも同じ仮想環境を使って開発
これでMacでPythonをいじる環境としては、かなりいい感じになったはずです。
次はPoetryを使ったプロジェクトの作成方法をお読みいただくと、実際の開発のセットアップが総ざらいできていい感じだと思います。
次の記事も、ぜひどうぞ。
» 参考:Poetryを使ったプロジェクトの初期設定方法(準備中)




コメント