📝

pyenv 使い方ガイド

に公開

pyenvとは

複数のPythonバージョンを管理・切り替えできるツール

  • プロジェクトごとに異なるPythonバージョンを使える
  • システム全体やディレクトリ単位でバージョンを設定可能

基本的な流れ

  1. インストール → 2. バージョン設定 → 3. 使用開始

チートシート

操作 コマンド 説明
バージョン確認 pyenv install --list インストール可能なPythonバージョン一覧
pyenv versions インストール済みPythonバージョン一覧
pyenv version 現在使用中のPythonバージョン
インストール pyenv install 3.11.0 指定Pythonバージョンをインストール
pyenv uninstall 3.8.0 指定Pythonバージョンをアンインストール
バージョン設定 pyenv global 3.11.0 システム全体のデフォルト設定
pyenv local 3.9.18 現在のディレクトリのみ設定
その他 exec $SHELL 設定を反映(トラブル時)

インストール可能なバージョン一覧

コマンド

pyenv install --list

バージョンの種類

種類 説明
標準Python 3.11.7, 3.10.13 公式のCPython
Anaconda anaconda3-2023.09 Anaconda配布版
Miniconda miniconda3-latest 軽量版Anaconda
PyPy pypy3.9-7.3.12 高速化されたPython実装
古いバージョン 2.7.18 Python 2系(非推奨)

推奨バージョンの選び方

  • 最新安定版3.11.x または 3.12.x
  • 企業環境3.9.x または 3.10.x(安定性重視)
  • 学習用3.11.x(最新機能を学べる)

「安定版」の意味について

技術的安定版 vs 実績による安定版

バージョン 技術的安定性 実績による安定性 個人利用 企業利用
Python 3.12 ○(安定版) △(リリースから約1年) 推奨 様子見
Python 3.11 ○(安定版) ○(十分な実績) 推奨 推奨
Python 3.10 ○(安定版) ○(枯れている) 推奨

企業が新しいバージョンを避ける理由

  • ライブラリ対応待ち:全てのライブラリが対応するまで時間がかかる
  • 実績不足:大規模システムでの長期運用実績がまだ少ない
  • リスク回避:本番環境では少しでもリスクを避けたい

-srcの意味

pypy2.7-7.3.0-src  ← ソースコードからビルド
pypy2.7-7.3.0      ← プリコンパイル済みバイナリ(推奨)
種類 インストール時間 メリット デメリット
通常版 短い(数分) 簡単・速い 一般的な環境のみ
-src版 長い(30分〜数時間) カスタマイズ可能 時間がかかる・複雑

推奨:初心者は-srcなしの通常版を選択

インストール済みバージョン一覧

コマンド

pyenv versions

表示例と解説

$ pyenv versions
  system
* 3.9.18 (set by /Users/username/.pyenv/version)
  3.11.7
  3.12.1

表示内容の意味

表示 意味
system システム標準のPython
* 3.9.18 現在使用中のバージョン(*印)
3.11.7 インストール済みだが未使用
(set by ...) バージョンが設定されたファイル場所

実用例

プロジェクトごとに異なるPythonバージョンを使う

# プロジェクトA(Python 3.11が必要)
cd project_a
pyenv local 3.11.0
python --version  # Python 3.11.0

# プロジェクトB(Python 3.9が必要)
cd ../project_b
pyenv local 3.9.18
python --version  # Python 3.9.18

基本的な使用手順

# 1. インストール可能なバージョンを確認
pyenv install --list | grep "3.11"

# 2. 必要なバージョンをインストール
pyenv install 3.11.7

# 3. インストールされたか確認
pyenv versions

# 4. 使用するバージョンを設定
pyenv global 3.11.7

# 5. 確認
python --version  # Python 3.11.7と表示される

まとめ

  • 軽量:Pythonバージョン管理のみに特化
  • シンプル:基本は installlocal/global の2ステップ
  • 柔軟:プロジェクトごとに異なるバージョンを簡単に切り替え
  • 注意:仮想環境やパッケージ管理は別途必要(venv + pip推奨)

Discussion