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つのことを実現できるようにします。
- アップグレードではなくて複数バージョンのPythonをインストールしている状態にしたい
- APP開発の時は3系Pythonを呼び出して使えるようにしたい
まずは複数バージョンのPythonをインストールしている状態を実現します。
Pythonのバージョン管理ツール
複数バージョンのPythonをインストールして管理していくならば「pyenv」を使用するとたいへん便利です。pyenvはPythonのバージョン管理を行なえるツールです。
「pyenv」をインストール
pyenvは、パッケージ管理ツール「Homebrew」でインストールします。Homebrewをまだイントールしていない方は、とても便利なツールなのでpyenvより先にインストールすることをオススメします。
Homebrewのインストール手順は別の記事に書いています。インストールを初めてされる方は見てみてください。
話しを戻しましょう。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の導入は難しくないと思います。順を追ってやってみてください。