はじめに
Pythonを勉強するに当たって環境構築をしようとしたのだがこれが意外と難しかった。
MacにはデフォルトでPythonはインストールされているけれど、最新のPython3ではなく、古いPython2がインストールされているので、新しく勉強&開発するにはそのままではできません。
しかもインストール方法もいくつもあって、どの方法でインストールすればいいのかPython初心者には分かりにくかったです。
さらに右も左もわからない状態だとPythonのインストール方法とライブラリのインストール方法と混同してしまって「あれ?今何やってたんだっけ?」となる場面が何回もありました。
Python勉強仲間に聞いても同じ悩みを抱えていたので、なら備忘録も兼ねて方法をまとめてみようと思って書いてみみました。
今回はMacOS CatalinaでHomebrewとpyenvを利用してPython3の最新版とゲームライブラリpygameをインストールしました。
実行環境
- MacBookPro Mid 2014
- macOS Catalina ver.10.15.16
使用するパッケージ
-
- 言わずと知れたMacとLinux向けのパッケージ管理ツール。
-
- Pythonのバージョン管理ツール。
これを使わなくてもPythonのインストール自体はできるみたいですが、複数のバージョンをインストール&切り替えが容易なのでpyenvを利用してインストールする方が後々の使い勝手もよさそうなので今回はこれを使います。
- Pythonのバージョン管理ツール。
-
- Python 用ライブラリの管理ツール。
各ライブラリのインストール作業はこれを使用します。Pythonをインストールすると一緒にインストールされるので特に導入作業は必要ありません。
- Python 用ライブラリの管理ツール。
-
- Python向けのゲーム作成モジュール集。
これを利用するとPythonだけで割と簡単にゲームを作れます。実際Python初学者でも2日でゲームを作れました。Pythonを学習するに当たってこれを使ったゲームを作ったので、今回はこれを使ってライブラリをインストールする手順をまとめます。
- Python向けのゲーム作成モジュール集。
※ 各パッケージの詳しい説明は各公式ドキュメントを参照して下さい。
※ 初めてのPython環境構築だと特にpyenvとpipを混同しやすいと思うので(実際私も散々苦労しました)、特にこの2つは意識的に区別しておくほうがいいと思います。
インストールの流れ
1.Homebrewをインストール
公式ドキュメントに従ってターミナルで以下のコマンドを実行します。もちろんインストール済みなら飛ばしても問題ありません。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
インストールが成功していればbrew -v
でHomebrewのバージョンが確認できます。
$ brew -v
Homebrew 2.4.9
Homebrew/homebrew-core (git revision 3b87b; last commit 2020-08-04)
Homebrew/homebrew-cask (git revision 2ee9f; last commit 2020-08-04)
2.pyenvをインストール
brew update
でHomebrewを最新の状態にアップデートして、brew install
でpyenvをインストールします。
$ brew update
$ brew install pyenv
pyenv -v
でpyenvのバージョンが確認できればOKです。
$ pyenv -v
pyenv 1.2.20
pyenv自体はこれで動作しますが、ターミナルにpyenvの設定を追加しないとpyenv経由でインストールしたPythonが認識されないので、下記のコマンドでターミナルに設定を追加、追加した設定をターミナルに認識させます。
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
$ source .zshrc
ターミナルがbashの場合は以下のコマンドで。
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
$ source .bash_profile
もちろんvimで直接プロファイル等に書き込んでも問題ありません。
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
3.pyenvでPythonをインストール
pyenv install -l
コマンドで、pyenvでインストール可能なPythonのバージョンが確認できます。
$ pyenv install -l
Available versions:
2.1.3
2.2.3
2.3.7
2.4.0
2.4.1
2.4.2
...
3.8.4
3.8.5
3.9.0b5
3.9-dev
3.10-dev
...
特に理由がない限り最新安定版(数字の後ろに'dev'とついていないもの)をインストールしておくほうがいいでしょう。
ちなみにanaconda等のプラットフォームもpyenvでインストールできます。
今回は3.8.5をpyenv install
コマンドでインストールします。
$ pyenv install 3.8.5
この段階ではインストールが完了しただけで、使用するPythonのバージョンはまだ切り替わっていません。
python -V
コマンドでバージョンを確認しても、MacにデフォルトでインストールされているPython2が認識されます。
$ python -V
Python 2.7.16
pyenv global
コマンドでインストールしたPythonがデフォルトで動くように切り替えます。
$ pyenv global 3.8.5
python -V
でバージョンが切り替わったのが確認できればインストール成功です。
上手く認識しないときは$ source .zshrc
でpyenvの設定をターミナルに再読み込みさせてみて下さい。
(※bashの場合は$ source .bash_profile
で。)
$ python -V
Python 3.8.5
ちなみにpyenv versions
でインストールされているPythonのバージョンを一覧で確認できます。
先頭に*がついたものがデフォルトのバージョンとして動作します。
$ pyenv versions
system
* 3.8.5 (set by /Users/linus/.pyenv/version)
4.pipでライブラリをインストール
pip install
コマンドでライブラリをインストールします。今回はpygameをインストールします。
$ pip install pygame
今回は最新安定版ではなく開発中の最新版が必要なので、バージョンを指定してインストールします。
ライブラリ名の後ろにバージョンを付け加えるとバージョン指定でインストールできます。
$ pip install pygame==2.0.0.dev10
pip list
コマンドでpipを使用してインストールしたライブラリを一覧で確認できます。
$ pip list
Package Version
---------- -----------
pip 20.1.1
pygame 2.0.0.dev10
setuptools 47.1.0
指定したバージョンでインストールできてますね。
Djangoなどの他のライブラリも同じ方法でインストールできます。
おまけ
今回インストールしたパッケージ等をアンインストールときは以下のコマンドで実行できます。
アンインストールするときはインストールしたときとは逆順で削除しないとファイルが残ることがあるので注意して下さい。
$ pip uninstall pygame
$ pyenv uninstall 3.8.5
$ brew uninstall pyenv
あとがき
初めて環境構築に取り組んでいたときも散々苦労しましたが、改めてまとめ直してみても結構大変でした。
Pythonはプログラミング初心者にもとっつきやすい言語だとよく聞きますが、環境構築はどうも初心者向けとは言い難いところがありますね。
※ 2020/08/06追記
pyenvを使用しないでHomebrewのみでPython3をインストールする方法もあったので試してみました。
MacOS CatalinaでPython3をインストールする(Homebrewのみで)
ただ本格的な開発にはpyenvを使用する方がどうもよさそうなので、あくまで参考程度にしてください。