1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pyenv経由でMacにPythonをインストールする

Last updated at Posted at 2021-06-22

MacにはデフォルトでPythonがインストールされていますが、バージョンが古く、今後複数のバージョンを使用する可能性も考慮してバージョン管理ツールである「pyenv」(ぱいえんぶ)を使って新しいPythonをインストールしてみました。

2021/5以降はパスを通す際に一部記述を変更する必要があるということがあったので、記事にしました。内容に不備などありましたら教えていただけると幸いです。

Homebrewのバージョン確認

まずはpyenvのインストールをするためにHomebrewを準備します。Macでは最初から用意されていますが、一応確認しておきます。

ターミナルを開き、下記コードをコピペしてください。

brew -v

以下のようになったらOKです。

Homebrew 3.2.0

もしbrew: command not foundとか出てきた場合はHomebrewがインストールされていませんので、下記の記事などを参考にお持ちのPCにHomebrewをインストールしてください。

pyenvをインストールする

続いてPythonのバージョン管理ツール「pyenv」をインストールします。
一応既にインストールされているか、下記のコードを入力してみてください。

pyenv -v

インストールした覚えはないので、「コマンドが見つかりません」的なメッセージが返ってくるのではないでしょうか。

pyenv: command not found

ですよね。

もしここで、

pyenv x.x.x

のようにバージョン名が表示されていれば、既にインストールされているので、以下のコマンドは飛ばして結構です。

私と同様、まだインストールしていない方は以下のコマンドを入力し、pyenvをインストールしましょう。

brew install pyenv

こういう画面が出ました。
よくわからないけど、できてるっぽい。

Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
baidupcs-go  pillow       plow         pyflow       soapyrtlsdr  soapysdr     terminator   waypoint
==> Updated Formulae
Updated 146 formulae.
==> New Casks
affinity-photo    castr             ears              hyperkey          keyboardholder    lagrange
==> Updated Casks
Updated 83 casks.

==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/manifests/2.0.1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/blobs/sha256:06646f2a7779fc545226e0a79b26e3c7a3e50f5
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:06646f2a7779fc545226e0
######################################################################## 100.0%
==> Pouring pyenv--2.0.1.big_sur.bottle.tar.gz
🍺  /usr/local/Cellar/pyenv/2.0.1: 760 files, 2.6MB

ちゃんとインストールできたか確認しましょう。

pyenv -v

すると以下のようになりました。

pyenv 2.0.1

順調です。いい感じ。

pyenvのPATHを通す

こういう、新しくツールをインストールしたときはPATH通さなきゃ使えないんですよね。私の場合シェルはzshを使っているので、Qiitaなどを参考に以下のコードを入力しました。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

zshrcを書き換えたときは変更を反映させる必要があります。

以下のコードを入力してください。

source ~/.zshrc

(参考記事)
【投稿】bashが起動時〜bashrcとbash_profileについて〜 自分メモ用

するとこんな表示が、、

WARNING: `pyenv init -` no longer sets PATH.
Run `pyenv init` to see the necessary changes to make to your configuration.

おとなしく言われた通りにコードを入力してみる。

pyenv init

すると以下のような表示が返ってきました。

# (The below instructions are intended for common
# shell setups. See the README for more guidance
# if they don't apply and/or don't work for you.)

# Add pyenv executable to PATH and
# enable shims by adding the following
# to ~/.profile and ~/.zprofile:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"  # <--- ココがなんか違う

# Load pyenv into the shell by adding
# the following to ~/.zshrc:

eval "$(pyenv init -)"

# Make sure to restart your entire logon session
# for changes to profile files to take effect.

あれ、さっきzshrcに書いたのと違うやつがいる。
ということでコードを修正します。(vimコマンドを使ってターミナル上で済ませます。)

vi .zshrc

iキーを押してインサートモードにした上で、先ほどの

eval "$(pyenv init --path)"

に書き換えましょう。
書き換えたらescキーでコマンドモードに戻り、:wqで保存して終了します。

そしてzshrcを書き換えたら変更を反映させましょう。

source ~/.zshrc

最初からコレ書いとけよ、というご意見はごもっともなのですが、執筆時現在において多くの教材や記事に上記コードで説明されているものが多かったため、あえてそのままの流れて書いています。ご了承くださいませ。

で、Githubのイシュー見るともうそのままのことが書いてありますね。2021年5月にあった仕様の変更で今回のような警告が出るようになったみたいです。
https://github.com/pyenv/pyenv/issues/1906

Pythonをインストールする

さて、気を取り直してPythonのインストールをしていきます。
今回は、先ほどインストールしたpyenvを使います。
まずは以下のコードを入力してみましょう。

pyenv install --list

インストール可能なPythonのバージョン一覧が表示されます。

Available versions:
  2.1.3
  2.2.3
  ~~
  3.9.5
  3.10.0b2
  3.10-dev
  ~~
  stackless-3.5.4
  stackless-3.7.5

今回は3.9.5をインストールします。

pyenv install 3.9.5

結構時間がかかりましたが、以下のような表示が返ってきました。

python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.5.tar.xz...
-> https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz
Installing Python-3.9.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.9.5 to /Users/bnn/.pyenv/versions/3.9.5

よくわかりませんが、できてるみたいです。
Pythonのバージョンを確認してみましょう。

python --version
Python 2.7.16

あれ?
あぁ、pyenvを用いて使用するPythonのバージョンを変更する必要がありました。

では以下のコードでpyenvで管理しているPythonのバージョン一覧を確認してみましょう。

pyenv versions

すると以下の表示が返ってきました。

* system (set by /Users/bnn/.pyenv/version)
  3.9.5

インストールはできているけどデフォルトのバージョンを使っているということです。せっかくインストールしたんだから最新版を使いたいです。

pyenv global 3.9.5

これで使用するバージョンを変更できます。
再度バージョンを確認してみましょう。

pyenv versions

すると以下の表示が返ってきました。

  system
* 3.9.5 (set by /Users/bnn/.pyenv/version)

ちゃんと切り替わっているみたいです。
一応Pythonコマンドでも確認してみます。

python --version

ドキドキ...

Python 3.9.5

完璧です。
天才かもしれません。

さいごに

今回はバージョン管理ツールのpyenvのインストール及びパスの通し方、使用するバージョンの変更方法について理解することができました。

予期せぬ警告が出たときは、落ち着いて読んでみることが大事ですね。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?