mei_13のPython講座 ロゴ

【解説】Pythonの環境構築をスマートに。pyenvでバージョン管理をマスターしよう




Pythonの環境構築をスマートに。pyenvでバージョン管理をマスターしよう


Yukiのアイコン
【Yuki】 こんばんは、Hiroki君。外も暗くなって、静かな時間になりましたね。 こんな落ち着いた夜は、プログラミングの学習もはかどるような気がします。

今日は、Pythonの学習を本格的に始める前に知っておいてほしい「pyenv(ピーワイエンブ)」というツールについてお話ししようと思います。 Pythonを使っていると、いつか必ず「バージョンの壁」にぶつかることがあるんです。それをスマートに解決してくれるのが、このツールなんですよ。


Hirokiのアイコン
【Hiroki】 Yukiさん、こんばんは!夜遅くにすみません。 Pythonのバージョン……ですか? 僕はとりあえず一番新しいPythonをインストールしたんですけど、それだけじゃダメなんですか?


Yukiのアイコン
【Yuki】 いえ、最初は最新版だけで全く問題ありませんよ。 でも、プログラミングを続けていくと、他の人が作ったプログラムを動かしてみたくなったり、古いシステムのお手伝いをすることもあるかもしれません。 そんな時、「このプログラムはPython 3.8でしか動かない」とか「最新の3.12だとエラーが出る」といった状況がよく起こるんです。

PCに一つのPythonしか入っていないと、そのたびにアンインストールして入れ直すのは……とても大変ですよね。 pyenvは、一台のPCの中に複数のバージョンのPythonを共存させて、自由に行き来できるようにしてくれる、とても控えめながら頼もしいツールなんです。

なぜPythonのバージョン管理が必要なの?


Hirokiのアイコン
【Hiroki】 なるほど。一つのPCに、違う種類のPythonを何個も入れておけるってことですね。 でも、なんでそんなにバージョンによって違いがあるんですか?


Yukiのアイコン
【Yuki】 それは、Pythonが日々進化しているからですね。 新しい機能が追加される一方で、古い書き方が使えなくなったり、ライブラリ(便利な道具箱のようなもの)が特定のバージョンにしか対応していなかったりするんです。

例えば、Hiroki君が「最新のAIライブラリを使いたいプロジェクト」と「数年前から動いているWebアプリの修正」を同時に抱えたとします。 前者はPython 3.11が必要だけど、後者はPython 3.7じゃないと動かない……。 こういう時に、システム全体のPythonを入れ替えるのではなく、「このフォルダではこのバージョンを使う」と魔法のように切り替えられるのが理想ですよね。


Hirokiのアイコン
【Hiroki】 確かに、それは便利そうです! 手動で切り替えるのは難しそうだけど、pyenvがあれば自動でやってくれるんですか?


Yukiのアイコン
【Yuki】 ええ、設定さえしてしまえば、プロジェクトのフォルダに移動するだけで、pyenvが自動的に「あ、ここは3.7だね」と判断して切り替えてくれます。 こうした「開発環境の使い分け」ができるようになると、初心者から一歩踏み出した感じがしますね。

pyenvとは何か:魔法のような切り替えツール


Yukiのアイコン
【Yuki】 pyenvは、一言で言えば「Pythonのバージョンマネージャー」です。 誰かの役に立つために作られた、シンプルで単機能なツールですが、多くのエンジニアに愛されています。

主な特徴はこんな感じです。

  • ユーザーごとにPythonのバージョンを管理できる
  • プロジェクト(ディレクトリ)ごとに使うバージョンを指定できる
  • コマンド一つで新しいバージョンのPythonをインストールできる

Hiroki君、実はPythonには「OS(WindowsやMac)が最初から使っているPython」というのも存在します。 それを直接汚してしまうと、最悪の場合OSの動きがおかしくなることもあるのですが、pyenvを使えば、OSの領域に触れずに自分専用の安全な遊び場を作れるんですよ。


Hirokiのアイコン
【Hiroki】 OSの動きがおかしくなるのは怖いですね……。 安全に使い分けができるなら、僕もpyenvを使ってみたいです!

pyenvを導入してみましょう(インストールと準備)


Yukiのアイコン
【Yuki】 そう言ってもらえると思っていました。 ただ、pyenvはインストールに少しだけコツが必要です。OSによって方法が違うのですが、主流な方法を説明しますね。

Macを使っている場合は、Homebrewというツールを使うのが一般的です。

brew install pyenv

Windowsの場合は、pyenv-winというプロジェクトが公開されています。 インストールが終わったら、自分の「シェル(コマンドを入力する画面)」の設定ファイル(.zshrcや.bash_profileなど)に、pyenvを使うための設定を書き込む必要があります。


Hirokiのアイコン
【Hiroki】 設定ファイル……。少し難しそうですね。


Yukiのアイコン
【Yuki】 大丈夫ですよ。落ち着いて一行ずつ進めれば、きっとうまくいきます。 例えばMacのZshという環境なら、以下のようなコードを書き足します。

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

これは、「これからPythonを呼ぶときは、まずpyenvに確認してね」とPCにお願いする設定です。 フォントの一文字一文字を丁寧に写すように、慎重に入力してみてくださいね。

pyenvの基本的な使い方を覚えよう


Hirokiのアイコン
【Hiroki】 なんとか設定できました! これで、どうやって新しいPythonを入れるんですか?


Yukiのアイコン
【Yuki】 お疲れ様でした。設定が終われば、あとは簡単ですよ。 よく使うコマンドをいくつか紹介しますね。

まず、今インストールできるPythonのリストを見てみましょう。

pyenv install --list


Hirokiのアイコン
【Hiroki】 うわっ、すごい量のリストが出てきました!


Yukiのアイコン
【Yuki】 ふふ、そうなんです。最新のものから古いものまで、たくさんありますよね。 特定のバージョンをインストールしたいときは、こう入力します。

# 例:3.10.12をインストールする場合
pyenv install 3.10.12

インストールが終わったら、今自分のPCにどんなバージョンが入っているか確認してみましょう。

pyenv versions


Hirokiのアイコン
【Hiroki】 今入れた「3.10.12」が表示されました! でも、これを選んで使うにはどうすればいいんですか?


Yukiのアイコン
【Yuki】 切り替えには、主に2つのコマンドを使い分けます。 一つは、PC全体で使うバージョンを決める global。 もう一つは、今いるフォルダだけで使うバージョンを決める local です。

# 全体で使うバージョンを決める
pyenv global 3.10.12

# 特定のプロジェクトフォルダだけで使うバージョンを決める
mkdir my-project
cd my-project
pyenv local 3.10.12

特に local コマンドを使うと、そのフォルダの中に .python-version という名前の小さなファイルが作られます。 そのフォルダに入ると、pyenvがそのファイルを読み取って、自動でバージョンを切り替えてくれるんです。


Hirokiのアイコン
【Hiroki】 フォルダに移動するだけで切り替わるなんて、本当に魔法みたいですね。 いちいち「今はどのバージョンだっけ?」って気にしなくていいのが嬉しいです。

pyenvの仕組み:裏側で動く「Shims」の話


Hirokiのアイコン
【Hiroki】 でも、どうしてコマンド一つでPythonが切り替わるんですか? 裏側で何が起きてるのか、少し気になります。


Yukiのアイコン
【Yuki】 鋭いですね、Hiroki君。 pyenvは「Shims(シム)」という仕組みを使っています。

普通、python コマンドを実行すると、PCは「本物のPython」を直接探しに行きます。 でもpyenvを導入すると、PCはまず「Shim」という偽の(あるいは仲介役の)プログラムを実行します。

この仲介役のプログラムが、「今どのフォルダにいるのかな?」「.python-version ファイルはあるかな?」と素早く確認して、適切なバージョンのPythonへ案内してくれるんです。


Hirokiのアイコン
【Hiroki】 案内役の人が、裏でこっそり交通整理をしてくれているようなイメージですね。


Yukiのアイコン
【Yuki】 ええ、まさにその通りです。 派手な機能ではありませんが、こういう小さなツールがエンジニアの日常を支えていると思うと、なんだか愛おしく感じませんか? 自分の分身のようなPCの中で、健気に働いてくれているんです。

まとめ:自分だけの快適な開発環境を目指して


Hirokiのアイコン
【Hiroki】 pyenvのこと、よくわかりました! これで「バージョンが違うから動かない」って言われても、慌てずに済みそうです。


Yukiのアイコン
【Yuki】 それは良かったです。 環境構築は、プログラミング学習の最初の一歩にして、実は一番の難所でもあります。 でも、pyenvを使いこなせるようになれば、これから先、どんな新しい技術に挑戦するときも、きっとスムーズに始められるはずですよ。

最後に、今回お話しした内容の参考になる公式サイトを紹介しておきますね。

もしインストール中にエラーが出たり、よくわからない表示が出たりしたら、いつでも聞いてください。 エラーメッセージは、PCからの「助けて」というサインですから、怖がらずに一緒に読み解いていきましょう。


Hirokiのアイコン
【Hiroki】 ありがとうございます、Yukiさん! まずは、自分のプロジェクトごとにバージョンを分けるところからやってみます。


Yukiのアイコン
【Yuki】 はい、頑張ってくださいね。 夜も更けてきましたし、今日はこのあたりにしましょうか。 新しいPythonの環境が、Hiroki君にとって素敵なものになりますように。 おやすみなさい。



< 参照渡し
コラム一覧に戻る
エディタ >

この記事では基礎を解説しましたが、実務においては「もっと複雑なデータを扱いたい」「独自のシステムに組み込みたい」といった、個別の課題に直面することも多いはずです。

「自分で書く時間は最小限に抑え、プロの品質でツールを完成させたい」という方は、ぜひ一度ご相談ください。

「教わる」だけでなく「形にする」パートナーとして、フリーランスエンジニアのmei_13が最短ルートでの解決をサポートします。

➡ ココナラで制作・相談を依頼する(見積もり無料)


初心者から始められるPythonレッスン

プログラミング未経験者・初心者歓迎!
月額4,000円で質問し放題!!
● 完全オンライン
● 翌日までには必ず返信
● 挫折しない独自の学習メソッド
● 圧倒的高評価!!
テキストベースで時間を選ばない
● 高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!



AIアシスタント Yuki