【pyenv】で管理!複数バージョンのPythonを使うための10ステップ

MacOSを使用しているならば、最初からPythonがインストールされています。MacOSを動作させるためにPythonを利用しているからです。MacOSユーザーは最初からPyhonが使えるのです。

しかし、MacOSで使用しているPythonは2系の古いバージョンなので、PythonでのAPP開発を考えると新しいバージョンである3系のPyhoneを別途インストールする必要があります。

では、古いバージョンの2系Pythonと新しいバージョンの3系Pythonの両方をどうやって管理したらいいのでしょうか?

今回は、複数バージョンのPyhoneを使用するためにバージョン管理をする方法をお伝えします。

  • 複数バージョンのpythonを切り替えて使用できる
もくじ

Pythonについて

MacOSとPython

最初にお伝えしたように、MacOSを使用しているならば、最初からPythonがインストールされています。MacOSを動作させるためにPythonを利用しているからです。

2系と3系のPython

MacOSを動作させるために使用しているPythonは2系で、最新のPythonは3系です。2系と3系のPythonには互換性はがなく、ソースコードの書き方も異なります。ですから、APP開発をPyhonで進めていく上で新しいバージョンである3系Pyhoneの使用は避けられません。デフォルトでイントールされている2系Pythonに加えて3系Pythonを別途インストールする必要があります。

実現させたいこと

しかし、MacOSを動作させているのは2系Python、APP開発で使用したいのは3系Python。新たに3系Pythonをインストールするとして、Pythonのバージョンをアップグレードする方法ではOSの動作に影響が出てしまうかもしれないので、アップグレードではなくて両方をインストールしている状態にしたいです。また、アップグレードすることなく2つのバージョンのPythonを両立できたとして、APP開発の時は3系Pythonを呼び出して使えるようにしたいです。PythonでのAPP開発環境を構築する上で、これら2つのことを実現したいと考えました。

Pythonのバージョン管理

ここからは前章で明確になった以下2つのことを実現できるようにします。

  1. アップグレードではなくて複数バージョンのPythonをインストールしている状態にしたい
  2. APP開発の時は3系Pythonを呼び出して使えるようにしたい

まずは複数バージョンのPythonをインストールしている状態を実現します。

Pythonのバージョン管理ツール

複数バージョンのPythonをインストールして管理していくならば「pyenv」を使用するとたいへん便利です。pyenvはPythonのバージョン管理を行なえるツールです。

「pyenv」をインストール

pyenvは、パッケージ管理ツール「Homebrew」でインストールします。Homebrewをまだイントールしていない方は、とても便利なツールなのでpyenvより先にインストールすることをオススメします。

Homebrewのインストール手順は別の記事に書いています。インストールを初めてされる方は見てみてください。

【Mac】【Homebrew】パッケージ管理システム「Homebrew」をインストールする①

今回は、Macで動作するツールで、ソフトウェアのインストール、アンインストールをターミナルのコマンドラインだけで行えたり、インストール時にパッケージ間の依存関係を自動で解決してくれるな… [more]

話しを戻しましょう。Homebrewはターミナルで使用するので、「アプリケーション>ユーティリティ>ターミナル」の順番に進んで、ターミナルを開きます。

ターミナルが開けたら、以下のコマンドを実行してください。

$ homebrew install pyenv

上記のコマンドを実行すると、pyenvのインストールが自動で始まります。

インストールが完了したら、以下のコマンドを実行してイントールが無事に完了したことを確認します。

$ pyenv -v

上記のコマンドを実行すると、pyenvのバージョンを確認でき、バージョンが表示されるということはpyenvがインストールされたことの証明にもなります。私の場合は「pyenv 1.2.22」と表示されました。

“pyenv”の設定

今度はpyenvが、、、、以下のコマンドを実行してください。

$ echo $SHELL

上記のコマンドを実行すると、「/bin/bash」または「/bin/zsh」と表示されると思います。どちらが表示されたかで、ここからの方法は異なります。

(1)「/bin/bash」と表示された場合

「/bin/bash」と表示された場合は以下のコマンドを実行してください。

$ vim ~/.bash_profile

上記のコマンドを実行すると非表示ファイル「.bash_profile」を編集する画面に移動します。

「i」を押してインサートモードに切り替えください。一番下のコマンドラインに「INSERT」と表示されていれば、インサートモードに切り替わっています。

予め何かしらのコマンドが書かれている場合は、それらはそのまま残しておきます。下ボタンを押してカーソルを一番下まで移動させて、以下のコマンドをコピペしてください。

#setting PATH for pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

上記のコマンドをコピペしたら「esc」を押して、INSERTモードからコマンドモードに戻します。コマンドモードに戻ったら「:wq」を入力して「Enter」を押します。「:wq」は保存して編集を終了するためのコマンドです。

編集画面が閉じたら、以下のコマンドを実行してください。

$ source ~/.bash_profile

上記のコマンドを実行すると、”.bash_profile”ファイルに書き込んだコマンドが実行されます。

(2)「/bin/zsh」と表示された場合

「/bin/zsh」と表示された場合は以下のコマンドを実行してください。

$ vim ~/.zshrc

上記のコマンドを実行すると非表示ファイル「.zshrc」を編集する画面に移動します。

「i」を押してインサートモードに切り替えください。一番下のコマンドラインに「INSERT」と表示されていれば、インサートモードに切り替わっています。

予め何かしらのコマンドが書かれている場合は、それらはそのまま残しておきます。下ボタンを押してカーソルを一番下まで移動させて、以下のコマンドをコピペしてください。

#setting PATH for pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

上記のコマンドをコピペしたら「esc」を押して、INSERTモードからコマンドモードに戻します。コマンドモードに戻ったら「:wq」を入力して「Enter」を押します。「:wq」は保存して編集を終了するためのコマンドです。

編集画面が閉じたら、以下のコマンドを実行してください。

$ source ~/.zshrc

上記のコマンドを実行すると”.zshrc”ファイルに書き込んだコマンドが実行されます。

Pythonをインストール

ここからようやく3系Pythonをインストールする作業に移ります。

Pythonはpyenvで管理するので、ここからはpyenvを経由して作業します。

インストール可能なPythonを確認

まずはインストール可能なPythonのバージョンを確認しましょう。以下のコマンドを実行してください。

$ pyenv install --list

上記のコマンドを実行すると、インストール可能なPythonのバージョンが一覧表示されます。なるべく最新のPythonをインストールしましょう。私の場合は以下のようになりました。

これでも一部だけしか表示されていません。とても多いですね。

例として、私は「バージョン3.9.0」をインストールしてみようと思います。

Tcl/Tkを修正

インストールしたいPythonのバージョンを決めたら、Pythonで日本語表示・入力が正しくできるようにするため、「Tcl/Tk」をダウンロードします。“Tcl/Tk”はPythonがウィンドウを表示するために使用しているプログラムです。

“Tcl/Tk”にもバージョンがあり、ダウンロードしたいPythonに適したものをダウンロードします。https://www.python.org/download/mac/tcltk/

Pythonのバージョンが「3.9.0以上、3.8.0以上、3.7.2以上」ならば、Tcl/Tkはバージョン8.6をインストールします。

Pythonをインストール

私は”バージョン3.9.0″をインストールすることにしていたので、pyenvを経由してPythonの”バージョン3.9.0″をインストールします。”バージョン3.9.0″をインストールするには、以下のようにコマンドを実行します。

$ pyenv install 3.9.0

上記のように、インストールしたいバージョンを”pyenv install”の後ろに入力してコマンドを実行します。実行後は自動でインストールが開始されます。

インストールが完了したら、以下のコマンドを実行してください。

$ pyenv versions

上記のコマンドを実行すると、インストールされているPythonのバージョンが一覧表示されます。私の場合は、以下のように表示されました。

* system
3.9.0 (set by /Users/⋯⋯ユーザー名⋯⋯/.python-version)

「system」というのはMacOSが使用している2系Pythonのことです。「*」のしるしは、現在使用中のPythonを表しています。

local環境またはglobal環境

最後に、先ほどインストールした3系Pythonの使用環境設定をします。

1つのユーザーアカウントから使用する場合はlocal環境(ユーザーアカウント配下)で使うように設定、複数のユーザーアカウントからこの新しくインストールしたPythonを使用する場合はglobal環境で使うように設定します。global環境にすると思わぬトラブルが起こりやすいので、localで使用することをオススメします。設定の方法は、

local環境で使う場合

local環境で使う場合は以下のコマンドを実行してください。

$pyenv local 3.9.0

global環境で使う場合

global環境で使う場合は以下のコマンドを実行してください。

$pyenv global 3.9.0

以上で全ての設定が完了しました。

まとめ

順番通りに作業を行えば、pyenvの導入は難しくないと思います。順を追ってやってみてください。