🐍

M1 MacでPythonをはじめる準備

2 min read

Homebrewのインストール

公式にあるコマンドをコピーして、ターミナルで実行。

https://brew.sh/index_ja

途中パスワードを聞かれたら、PCにログインする時のパスワードを入力。

インストールが完了したら、PATHを通すために~/.zprofileに以下のように記述。
1行目の「# homebrew」はなくてもOK。

~/.zprofile
# homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"

シェルを再起動。

ターミナル
exec $SHELL -l

バージョンを確認。

ターミナル
brew -v
ターミナル(出力結果)
Homebrew 3.2.10
Homebrew/homebrew-core (git revision 4c82ac1f93; last commit 2021-08-31)

pyenvのインストール

M1 MacにはデフォルトでPythonがインストールされているが、システム上で使用されているかもしれないので、pyenvを使って別のPythonをインストールする。

そのためにまずpyenvをインストール。

ターミナル
brew install pyenv

インストールが完了したら、PATHを通すために~/.zprofileに以下のように記述。
1行目の「# pyenv」はなくてもOK。

~/.zprofile
# pyenv
export PYENV_ROOT="$HOME/.pyenv/shims"
export PATH="$PYENV_ROOT:$PATH"
export PIPENV_PYTHON="$PYENV_ROOT/python"

シェルを再起動。

ターミナル
exec $SHELL -l

バージョンを確認。

ターミナル
pyenv -v
ターミナル(出力結果)
pyenv 2.0.6

Pythonのインストール

pyenvを使ってインストールできるPythonのバージョンは、以下のコマンドで確認できる。

ターミナル
pyenv install -l

ここではたとえば「3.9.7」をインストール。

ターミナル
pyenv install 3.9.7

pyenv versionsでインストールしたバージョンを確認。

ターミナル
pyenv versions
ターミナル(出力結果)
* system (set by /Users/ユーザー名/.pyenv/shims/version)
  3.9.7

任意のディレクトリ(たとえば「~/study/python」)でpyenv localを実行すると、当該ディレクトリ配下で使用するPythonのバージョンを固定できる。

ターミナル
pyenv local 3.9.7

ディレクトリ内に.python-versionというファイルが生成される。
中身はただのバージョン情報。

~/study/python/.python-version
3.9.7

Pythonのバージョンを確認。

ターミナル
python --version
ターミナル(出力結果)
Python 3.9.7

もし.python-versionで指定したバージョンが表示されない場合は、後述の補足で解決するかも。

Hello, world!してみる

.python-versionを生成したディレクトリ内に「hello-world」というディレクトリを作成し、その中にhellow-world.pyを作成。

~/study/python/hellow-wold/hello-world.py
# ただ「Hello, world!」と表示するだけ
print("Hello, world!");

pythonファイルはpython ファイル名で実行。

ターミナル
python hello world.py
ターミナル(出力結果)
Hello, world!

補足

pyenvのPATHを通す方法として、以下のように書いてある記事があった。

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

これでも確かにpyenvは使えるが、pyenv localでバージョンを固定しても、python --versionで表示されるバージョンが変更されない。

調べたところ、以下の記事にあるPATHの通し方で解決できた。

https://stackoverflow.com/questions/58674723/pyenv-local-global-not-working-on-catalina

Discussion

ログインするとコメントできます