このページでは、特に Mac ユーザーに向けた pyenv の使い方について、分かりやすく解説したいと思います。
Contents
pyenv について
それではまずは pyenv について解説します。
pyenv とは
pyenv とは主に下記の2つを行うソフトウェアです。
- Python のインストール
- Python のバージョンの切り替え
pyenv により Python を簡単にインストールすることが可能です。さらに Python のバージョンの切り替えを行うことも可能です。
例えば PC の中に複数のバージョンの Python をインストールされている時に、どのバージョンの Python を使用するかを簡単なコマンドで切り替えることが可能です。
さらに、フォルダ単位でどの Python バージョンを使うかを指定することも可能です。
例えば上の図のようにバージョン切り替え設定を行った場合、Programming フォルダで Python を実行すると、バージョン 3.8.0 のPython が使用されます。
一方で Documents や Download フォルダで Python を実行すると、バージョン 3.7.0 のPython が使用されます。
その他の場所であればもともと Mac にインストールされていたバージョン 2.7.0 の Python が使用されます。このような感じでフォルダに応じて Python のバージョンを切り替えることが可能です。
スポンサーリンク
バージョンが切り替えられるメリット
Python には大きく2系統のバージョンのものがあります。
- Python 2(2.X.XX)
- Python 3(3.X.YY)
厄介なのはこの2つで使用できる関数や関数の動作の違いがあるところです。なので、Python 2 向けのプログラムは Python 3 で実行しても動かないことがあります。
バージョンの切り替えが出来ると Python 2 向けに記述されたプログラムは Python 2 で実行し、Python 3 向けに記述されたプログラムは Python 3 で実行する、といったようにプログラムに合わせてバージョンを切り替えることが可能です。
また Mac にはもともと Python 2 がインストールされています。なので Python 2 で動作することを考慮して作成されているアプリが PC 内に存在する可能性があります。したがって Python を常に Python 3 で動作させることは他のアプリの実行に影響する可能性がありリスクが大きいです。
pyenv を用いればフォルダごとに使用する Python のバージョンを切り替えることが可能ですので、特定のフォルダ(例えば Python 勉強用に用意したフォルダ)のみを Python 3 で動作させ、他のフォルダはもともと Mac にインストールされていた Python 2 を動作させるように制御することで、他のアプリに影響を及ぼすことなく、Python の勉強をすることが可能になります。
pyenv のインストール
では早速 pyenv のインストールを行っていきましょう!
事前準備
まずはちょっとした事前準備が必要です。
ターミナルを起動
pyenv のインストールはターミナルアプリから実行します。なのでターミナルアプリを起動してください。ターミナルアプリは下記の場所にあります。
アプリケーション -> ユーティリティ
ターミナルアプリのアイコンをダブルクリックして起動してください。するとターミナルアプリが起動します。
このターミナルアプリではコマンドを実行することでさまざまな処理を行うことができます。
最初に実行するコマンドは下記です。
cd
このコマンドは、「あなたのホームフォルダに移動するコマンド」になります。具体的には下記のようなフォルダに移動します。
/Users/[あなたのユーザー名]
Homebrew をインストール
続いて Homebrew をインストールします(すでに Homebrew をインストール済みの方は次に進んでください)。
Homebrew は Mac 用のパッケージ管理ソフトです。Homebrew を利用することで色んなソフトウェアパッケージをインストールすることが可能です。Mac でプログラミングをする気があるのであれば必ず入れておいた方が良いです!
まずは Homebrew の公式ページに行きます。コチラをクリックすると公式ページに飛ぶことができます。
下記のようなページが表示されますのでピンク部分のスクリプトをコピーします。
さらにターミナルアプリでコピーしたスクリプトを貼り付けます。「編集」メニューの「ペースト」から、もしくは「Ctrl + v」により貼り付けすることができます。
貼り付け後は Enter キーを実行することで Homebrew のインストールが開始されます。ところどころで Enter キー(RETURN)の実行を促されるのでそれに従ってインストールを進めてください。
インストール完了後、インストールできているかどうかを「brew –version」コマンドで確認してください。下記のように Homebrew のバージョンが表示されればオーケーです。
brew --version Homebrew 2.1.15 Homebrew/homebrew-core (git revision 76220; last commit 2019-11-05)
スポンサーリンク
brew コマンドで pyenv をインストール
続いてはいよいよ pyenv のインストールです。Homebrew を使用することで簡単に pyenv のインストールを行うことができます。
下記のコマンドを実行すれば pyenv のインストールが行われます。
brew install pyenv
これだけ。簡単です。
pyenv のインストールの確認
インストールが完了したら、インストールがちゃんと行われているかを確認しましょう。下記のように「pyenv –version」コマンドを実行して pyenv のバージョンが表示されればインストールはオーケーです。
pyenv --version pyenv 1.2.15
pyenv の設定
次は pyenv の設定を行います。具体的には .bash_profile というファイルの編集を行います。
.bash_profile の作成
.bash_profile というのは簡単にいうとターミナルアプリの設定ファイルの一つです。この設定ファイルに基づいてターミナルが動作します。
まずはターミナルで下記を実行します。
cd
次に下記コマンドを実行してください。
ls -al
これは現在いるフォルダ(つまりホームフォルダ)に存在するファイルを表示するコマンドになります。表示結果の中に .bash_profile があるかどうかを確認してください。
もし無いようであれば、下記コマンドを実行してください。これにより .bash_profile ファイルが作成されます。すでに .bash_profile がある方は下記コマンドの実行は不要です。
touch .bash_profile
.bash_profile が作成できれば、あとは2つのコマンドを実行して作成した .bash_profile に設定を追加することで、pyenv の設定が完了します。
PYENV_ROOT の設定
1つ目に実行するのは下記コマンドです。
echo 'export PYENV_ROOT="$HOME/.pyenv"'>> .bash_profile
このコマンドは .bash_profile ファイルに「export PYENV_ROOT=”$HOME/.pyenv”」という文字列を追記するものになります。
これにより PYENV_ROOT という環境変数に $HOME/.pyenv が設定されます。 PYENV_ROOT は簡単に言うと pyenv がバージョン管理する python が格納されるフォルダです。ちなみに $HOME とはホームフォルダへのパスが格納された変数です。なので下記フォルダ以下に pyenv でインストールした Python のファイルが格納されることになります。
/Users/[あなたのユーザー名]/.pyenv
「”$HOME/.pyenv”」の部分を変更することで pyenv による Python のインストール先を変更することも可能です。
PATH の設定
もう一つのコマンドは下記です。
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> .bash_profile
このコマンドは .bash_profile ファイルに「export PATH=”$PYENV_ROOT/shims:$PATH”」という文字列を追記するものになります。
PATH は Mac でプログラミングをする上で非常に重要なものなのでちょっと詳細に解説します。
PATH というのは簡単にいうと実行プログラムのあるフォルダパスを格納する変数になります。この PATH に含まれるパスに存在する実行プログラムはターミナルからファイル名を指定するだけで実行することが可能です。
例えばデフォルトで PATH に含まれているフォルダパスとして「/usr/bin」があります。
例えば、ここまで使用してきたコマンドの「cd(チェンジディレクトリ)」の実行ファイルはこのフォルダ内に存在します。つまり PATH に含まれるパスのフォルダに「cd」という実行プログラムがあるので、単に cd と打つだけで cd の機能であるフォルダの移動ができるというわけです。
もし PATH に「/usr/bin」が設定していなければ、わざわざ「/usr/bin/cd」という風にフォルダのパスも含めて指定する必要があります。面倒ですよね!
ただ PATH は面倒さを解消するためだけに設定されるわけではありません。プログラムの中には「PATH に特定のパスが設定されていることを前提として動作する」ものが存在します。例えばプログラム内に「cd」コマンドを実行する処理があるとしましょう。もし PATH に「/usr/bin」が設定されていなければ「cd」コマンドは前述の通り「/usr/bin/cd」と指定して実行する必要があります。そうなるとこのプログラムは「cd」コマンドを実行することができず、プログラムはエラー終了してしまいます。
このように PATH に特定のパスを設定しておかないと動作させられないプログラムやソフトウェアも存在します。そして pyenv もこの PATH に pyenv でインストールした Python が格納されたフォルダへのパスが設定されていることを前提として動作しています。なので、この PATH の設定を行う必要があります。
上記のコマンドはこのような PATH の一番最初に「$PYENV_ROOT/shims」を追加で設定するものになります。
pyenv でインストールした Python の実行プログラムは「$PYENV_ROOT/shims」にインストールされますので、ターミナルで「python」と打って実行するだけで Python を実行することが可能になります。
上記2つのコマンド実行完了したら、一旦ターミナルを終了し、再起動しましょう。これは .bash_profile に設定した内容をターミナルアプリに反映するためです。
ターミナルアプリを再起動したら次のコマンドを実行してみましょう。PATH に設定されたパスが列挙されます。
echo $PATH
/Users/[ユーザ名]/.pyenv/shims:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:
青字部分のように上記で PATH に追加したフォルダパスが表示されれば設定完了です(後ろに続くフォルダパスは、もともと PATH に設定されていたフォルダパスになります)。
スポンサーリンク
pyenv の使い方
続いて pyenv を使って Python のインストールおよびバージョン切り替えを実際に行なっていきましょう!
Python のインストール
Python はターミナルアプリで下記コマンドを実行することでインストールすることができます。
pyenv install [バージョン番号]
例えば Python 3.8.0 をインストールするのであれば、下記のようにコマンドを実行します。
pyenv install 3.8.0
インストールされた python は PYENV_ROOT で設定したフォルダ以下に格納されます。このページの通り設定してきたのであれば下記のフォルダに格納されます。
/Users/[ユーザ名]/.pyenv/
ちなみに下記コマンドでインストール可能なバージョンをリストアップすることができます。おそらく大量に出力されると思います。
pyenv install -l
Python 単体であれば下記のようにバージョン番号のみが列挙されます。
3.7.1 3.7.2 3.7.3 3.7.4
また anaconda などのディストリビューションはディストリビューション名も含めてバージョン番号が列挙されます。
anaconda3-5.1.0 anaconda3-5.2.0 anaconda3-5.3.0 anaconda3-5.3.1
anaconda なども上記で列挙された名前を指定してやれば pyenv からインストール可能です。
pyenv install anaconda3-5.3.1
このように、pyenv さえインストールしてやれば、簡単なコマンドを入力するだけで Python や anaconda なども簡単にインストールすることが可能になります。
インストール済みのバージョンの確認
pyenv でインストールした python のバージョンの確認は下記コマンドで行うことができます。
$ pyenv versions * system (set by /Users/[ユーザー名]/.pyenv/version) 3.7.0 anaconda3-5.3.1
「*」が付いているバージョンが、このコマンドを実行したフォルダで使用するように設定された Python バージョンになります(system はデフォルトでインストールされていた Python)。
スポンサーリンク
Python のアンインストール
pyenv コマンドで Python のアンインストールも行うことができます。アンインストールは下記のコマンドで実行します。
pyenv uninstall [バージョン番号]
アンインストール可能なバージョン(インストール済みのバージョン)は pyenv versions で確認することができます。
pyenv versions system * 3.7.0 3.8.0 anaconda3-5.3.1
例えばバージョン 3.8.0 の Python をアンインストールするのであれば実行するコマンドは下記のようになります。
pyenv uninstall 3.8.0
コマンド実行後、pyenv versions コマンドでバージョンを確認すると、アンインストールしたバージョンが表示されなくなるはずです。
pyenv versions system * 3.7.0 anaconda3-5.3.1
Python のバージョン切り替え
pyenv の強みは Python のインストールが簡単なだけでなく、複数の Python のバージョンを簡単に切り替えることができることです。
Python のバージョン切り替えはフォルダ単位で設定する方法とシステム全体(全フォルダ)で設定する方法の2つがあります。
使用する Python バージョンをフォルダ単位で設定
まずはフォルダ単位で切り替える方法について解説します。pyenv を用いるとフォルダ単位で使用する Python を設定することができます。イメージ的には下の図のようになります。
下記コマンドを実行することで、フォルダ単位で Python のバージョンを設定することが可能です。
pyenv local [バージョン番号]
指定するバージョン番号は pyenv によりインストール済みのものであることに注意してください。
例えばバージョン 3.8.0 に切り替えるのであれば下記コマンドを実行します。
pyenv local 3.8.0
これにより、このコマンドを実行したフォルダ以下で python コマンドを実行すると、指定したバージョンの Python が実行されることになります。上記コマンドを実行したフォルダで下記コマンドを実行してみましょう。
python -V Python 3.8.0
pyenv local で設定したバージョンに切り替わっていれば上手く pyenv が設定されていると言えます。
これにより、pyenv local コマンドを実行したフォルダ以下で使用する Python のバージョンが切り替わったことになります。
もし上手くバージョンが切り替わらないのであれば PATH の設定が上手くいっていない可能性が高いです。
バージョン設定をもとに戻すためには下記のコマンドを実行します。
pyenv local --unset
使用する Python バージョンをシステム全体で設定
pyenv local では特定のフォルダ以下で使用する Python のバージョンを切り替えることができましたが、今度は Mac 全体で使用する Python のバージョンを切り替える方法を紹介します。イメージ的には下の図のようになります。
システム全体で使用する Python のバージョンを指定するには pyenv global コマンドを使用します。
pyenv global [バージョン番号]
バージョン番号には pyenv によってインストール済みのものを指定します。
例えばバージョン 3.8.0 に切り替えるのであれば下記コマンドを実行します。
pyenv global 3.8.0
これにより、Mac 内の全フォルダのどこで python コマンドを実行しても、指定したバージョンの Python が実行されることになります。どのフォルダで下記コマンドを実行しても pyenv global で指定したバージョンが表示されるはずです。
python -V Python 3.8.0
バージョン設定をもとに戻すためには下記のコマンドを実行します。
pyenv global system
まとめ
このページでは pyenv のインストール方法と主な使い方について解説しました。pyenv は、いろんなバージョンの python やいろんなディストリビューションをインストールしたり使い分けたりすることが簡単に行える点がオススメです。
PATH の設定部分はちょっと難しいので注意しましょう!
[…] pyenv のインストール方法・使い方を初心者向けに分かりやすく解説 […]