pyenvによるPythonの開発環境構築【Mac】

Tech

2023.6.12

Topics

はじめに

こんにちは、いかがお過ごしでしょうか?

この記事は「将来はPythonを使った業務をしたい」、「これから業務で必要になるんだけど、Pythonの始め方が知りたい」など、仕事でPythonを使いたいというプログラミング初学者に向けて作りました。またこの記事を読み終える頃には、「Pythonが動く環境」はもちろんですが、「会社でコードを書く時の基本的な考え方」や、「公式ドキュメントの読み方」なども身についていることでしょう。

この記事の筆者はプログラミング初学者ですので、初学者が躓きやすい箇所をなるべく丁寧に解説していきたいと思います。それではゴルフ界のレジェンド、ベン・ホーガンの名言と共に「pyenvによるPythonの開発環境構築」、始めていきます!

ゴルフは単純なんだが、ただそれを知るまでには時間がかかる。

 

Why pyenv?

今回の記事では、pyenvを使ってPythonの開発環境を構築していくのですが、そもそも「なぜpyenvを使うんだ」と思いませんか?私は思いました。

pyenvを使う理由、それは開発をより効率的に進めるためです。Pythonでは通常、ライブラリ(特殊な機能を持った関数やクラスを一つにまとめたもの)というものを利用しながらコードを書いていきます。自分で必要な機能の全てを作るのは非常に大変だからです。

当然、会社内のプロジェクトや機能によって、必要なライブラリは変わってきます。(ライブラリ同士にもバージョンの互換性があります)そして、各々ライブラリは対応しているPythonのバージョンでしか動くことが保証されていません。ですから、扱うプロジェクトごとに毎回適切なPython環境を作らなければならないのです。これは非常に面倒です。

そこでpyenvを使うことで、簡単にプロジェクト毎にPython環境を切り替えることができるのです。このような仕組みは、趣味の個人開発などでは取り入れなくて良いものかと思いますが、複数人でコードを書く、かつ様々な環境で様々なプロジェクトが動いているときには、とても大切になってきます。

それでは次の章からさっそく始めていきますが、やっていることはpyenvの公式ドキュメントに全て書いてあることを順番に行なっているだけです。公式ドキュメントは英語で書かれていますから、内容がうまく理解できない箇所は、翻訳ソフトなどを使いながら進めていただければと思います。

※pyenvに限らず、ツールなどをインストールする場合、まずは公式ドキュメントを読むのが一番良いです。どうしてもわからない場合に個人ブログなどの解説記事を読むようにしましょう。公式ドキュメントはわかりやすく書かれている場合がほとんどです。

 

Homebrewをインストールする

まずはpyenvの公式ドキュメントを開いてください。

画像1

Table of Contents(目次)をみていくと、Installation(インストールと同義)がありました。中身を順番に見ていきましょう。

画像2

まずは画像2より「1.Consider installing with Homebrew」と書いてあります。Homebrewを使用してインストールするのが良いそうです。インストールせずにコードを打つとどうなるかを試すために、画像にあるコードをMacのターミナルに打ち込んでみます。

brew update brew install pyenv

すると、、

→brew: command not found

と出てきました。今のままではbrewというコマンドは使えないみたいです。使えるようにするには、なにかをインストールする(使えるようにする)必要がありそうです。図2のテキスト内リンク(Homebrewという青い文字列)からHomebrew公式ページにいってみましょう。

画像3

画像3

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install Homebrewと書いてあって、その下にコードがありますからターミナルにそのままコピペします。しばらく待つとインストールが完了します。インストール完了後に、再度さきほどのコードを打つと、brewを使ってpyenvをインストールすることができるようになります。

※Homebrewとは、パッケージ管理システムの一種です。Homebrewを使ってパッケージをインストールすることで、バージョンの更新やパッケージ自体のインストール・アンインストールを簡単に行うことができます。

 

pyenvのshell環境のセットアップ&再起動

次に、図2より「2.Then follow the rest of the post-installation steps, starting with Set up your shell environment for Pyenv.」ということで、pyenvを動かすためにshell環境をセットアップしなければいけないようです。これもテキスト内リンクから「Set up your shell environment for Pyenv」にいってみましょう。「For bash:」、「For Zsh:」、「For Fish shell:」などシェルといってもいろいろな種類があるんですね!自分がどのshellを使っているかわかりませんから、「mac shell 確かめ方」などでググってみましょう。

echo $0

と打てば現在のshellを確認できるみたいです。どうやらzshというものを使っていたようですね。(お手元の環境では違う種類のshellが動いているかもしれません)

画像4

・For Zsh:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

ということはZsh用のコードをターミナルに打ってあげます。時間がある人は、コードの内容を確認してあげると勉強になるかもしれません。pyenvをターミナルから操作できるようにpathを変更しているみたいですね!

pathの変更を有効にするため再起動が必要なようなので、こちらもターミナルに打っておきましょう。

exec "$SHELL"

 

Pythonビルドの依存関係をインストール

画像6

次は、「Install Python build dependencies」と書いてありますね。Pythonビルドの依存関係をインストールしてくださいということですが、分かりやすくいうとPythonを動かすためのシステムをインストールしてねという意味です。またドキュメント内リンクを見てみましょう。

画像7

OSごとにコードが違いますね。筆者はMac OSですので、下記コードを実行していきます。

brew install openssl readline sqlite3 xz zlib tcl-tk

コードの中身を見てみると先ほどインストールしたHomebrewを使ってopensslやreadline、sqlite3などのシステムをインストールしていますね。これでやっとpyenvが使えるようになりました!

Pythonバージョンをインストール

では早速Pythonをインストールしていきたいので、インストールするバージョンを選びましょう。はじめは何があるかわからないと思うので

pyenv install --list

でインストールできるPythonのバージョンを見ていきましょう。

画像8

実際に使いたいバージョンが決定したら、バージョンを指定してインストールしていきます。

画像9

無事にインストールが完了していれば、バージョン確認コマンドをターミナルに打ち込むと、先ほどダウンロードしたPythonのバージョンが表示されているはずです。

#バージョンを指定してインストール
pyenv install x.xx.xx
#バージョンの確認
python -V

Python環境をつくる

ここまでで、Pythonのバージョンを指定してインストールすることができました。次に、複数のPython環境を作ってみましょう。この操作を行う中で、pyenvの便利さを実感することができるかもしれません。

まずは先ほどインストールしたバージョンのPythonを割り当ててみましょう。コード内のglobalという文字列は、pyenv環境のデフォルトのバージョンを設定するコマンドです。

pyenv global 3.10.11

うまく設定できていれば、先程指定したバージョンが確認できるはずです。

python -V
→Python x.x.xx

それでは次に、別バージョンのPythonをインストールしてから新規ディレクトリを作成し、そのディレクトリ内のPythonのバージョンを設定してみましょう。

先程とは別のバージョンをインストールしていきます。(記事内では3.7.16をインストールしていますが、好きなバージョンを選択してください)

pyenv install 3.7.16

次に新規ディレクトリ(今回はtestという名前にしました)を作成して、そのディレクトリに移動します。

mkdir test
cd test

さきほどインストールしたバージョンのPythonをこのディレクトリに設定します。コード内のlocalという文字列は、アプリケーション単位でバージョンを設定するコマンドです。

pyenv local 3.7.16

それではもう一度バージョンを確認してみましょう。

python -V
→Python 3.7.16

なにが起こったかわかりましたでしょうか?先程インストールし、設定したバージョン(本記事だと3.10.11)が今設定したバージョン(本記事だと3.7.16)に上書きされたわけではありません。今いるディレクトリ内のPythonバージョンのみが設定されたのです。

画像10

画像で解説すると、pyenvを使うことで画像10のような環境を作ることができます。(画像10のPythonバージョンは適当)なお、バージョンは現在地から近いものが適応されます。(バージョンが設定されているディレクトリ内にいるときは、globalで設定したバージョンではなくlocalで設定したバージョンが適応される。)

一度環境を設定すれば、ディレクトリに入るだけで指定のバージョンが勝手に適応されるんですね。pyenv、とても便利です!

 

Pythonを書いてみる

最後に、念のためインストールしたPythonが本当にちゃんと動くのか、確認してから終了したいと思います。

python
→→→print('hello')

無事に実行結果が帰ってきています。Pythonが動いていることが確認できました。お疲れ様でした。

画像11

 

まとめ

pyenvによるPython環境の構築、うまくいきましたでしょうか?プログラミング初学者への記事ということでPython環境の構築はもちろんですが、この記事を通して公式ドキュメントを読む練習になればと思います。私もエンジニアとしてはスタートラインに立ったばかりですが、これからともに頑張っていきましょう!

 

▼イベントに参加した感想なども記事にしていますので、お時間ある方はぜひ覗いてみてください▼

関連記事
【AWS Summit Tokyo 2023】「今踏み出す、変革への一歩」(KEY-01)
Dr.K

2023年度新卒入社。DevOpsエンジニア。「好きなことで生きていく」

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら