\ お問い合わせはこちら! /

【Python】pyenvの導入方法

  • URLをコピーしました!

pyenvの仕組みと使ったほうが良い理由

pyenvを使わなくても、Pythonの公式サイトからダウンロードしてインストールすることもできます。確かにpyenvなどというものを使わない分、公式サイトからのダウンロードの方がわかりやすい。

ただ、実際のプロジェクトや僕が個人開発する際にもpyenvは必ず使っています。

その理由を簡単にご説明します。

複数バージョンのPythonを簡単に切り替えられる

Pythonではプロジェクトごとに違うバージョンを使いたい場合も多いです。

  • プロジェクトA(Django 2系):Python 3.8 が必要
  • プロジェクトB(最新ライブラリ使用):Python 3.11 を使いたい

仮にシステムに直接Pythonをインストールしてしまうと、どのPythonバージョンを使うかを指定するのが大変になってしまいます。

両者を簡単に比較すると、次のような感じです。

項目OS直インストールpyenv経由
複数バージョンの共存難しい簡単
バージョンの切り替えシンボリックリンクなどが必要pyenv global / pyenv local でOK
プロジェクト単位での制御面倒.python-version で自動切替できる
OS依存高い低い
システムを壊すリスクあるほぼない

つまり、pyenv を使えばプロジェクトごとに異なるPythonバージョンを簡単に使い分けられます

# プロジェクトAディレクトリ内で、以下を実行
pyenv local 3.8.18

# プロジェクトBディレクトリ内で、以下を実行
pyenv local 3.11.4

上記のように、フォルダ単位でバージョンを切り替えることができるのが最大のメリットです。

pyenvは「Pythonバージョン管理専用ツール」として、安全かつ柔軟に開発環境を整える必須ツールです。

pyenvの内部的な挙動について

pyenv の仕組みは、以下の通りです。

  • ~/.pyenv/versions/3.11.4/bin/python などに各バージョンをインストール
  • .python-version という設定ファイルで現在使用するバージョンを記録
  • python コマンドを pyenv が仲介し、正しいバージョンに切り替える

このPythonバージョン切り替えの仲介には、shimsというスクリプトが使われています。

shimsが使われているかは、which pythonコマンドを実行するとわかります。

which python
# => ~/.pyenv/shims/python

この「shims(仲介スクリプト)」が、pyenv の心臓部です。

pyenvの導入方法

pyenvのインストール

pyenv本体と、必要なパッケージをインストールします。

brew install openssl readline sqlite3 xz zlib pyenv

pyenvを有効化するため、パスを通しましょう。

# ~/.zprofile に追記(ログイン時のパス設定)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile
echo 'eval "$(pyenv init --path)"' >> ~/.zprofile

# ~/.zshrc に追記(対話シェルの初期化)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

# シェル再読み込み
exec $SHELL -l

インストール可能なPythonバージョンリストを取得

以下のコマンドで、pyenvを使ってインストール可能なPythonのバージョン一覧が取得できます。

pyenv install --list

Pythonのインストール

Python3.12をインストールする場合は、次のコマンドを実行します。

pyenv install 3.12

installコマンドでは、実際にPythonが有効化されていません。

そのため、次に紹介する有効化コマンドを実行する必要があります。

Pythonの有効化

インストールしたPythonを有効化しましょう。

システム全体に適用

今使っているマシン全体に、特定のPythonのバージョンを有効化するには次のコマンドを実行します。

pyenv global 3.12

特定フォルダに適用

ある特定のフォルダにPythonバージョンを適用したい場合には、次のコマンドです。

pyenv local 3.12

その他の便利なコマンド

globalで設定されているPythonのバージョンを確認

pyenv global

localで設定されているPythonバージョンを確認

pyenv local

現在インストール済みのPythonバージョンを表示

pyenv versions
#   system
# * 3.12.11 (set by /Users/yanro/.pyenv/version)

上記のように、*がついているのが現在有効になっているPythonのバージョンです。

Pythonのアンインストール方法

pyenv uninstall 3.12.0

最初にpyenv versionsでインストール済みのバージョンを確認してから、上記のuninstallコマンドで削除しましょう。

シェアはこちら
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

旅行が趣味のミニマリストです。
YouTubeでは「食べて飲んで帰るだけ」をテーマに『酔い旅』を投稿しています。
たまに趣味のプログラミング記事の投稿します。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)