Parallels Desktop 25%OFFセール中Go!

MacにPythonをインストール pyenvの使い方

MacにPythonをインストール

Mac にはあらかじめ Python がインストールされています。なので、わざわざインストールする必要はありません。はい、終了〜。

というわけにもいかないので、今回は Mac に Python をインストールする方法を解説していきます。macOS 12 (Monterey) には Python 3.8 が同梱されています。2系は同梱されなくなりましたので、Python 2.x を使いたい方、逆にもっと新しいバージョンを使いたい方、複数のバージョンを切り替えて使いたい方はこちらの記事を参考にしてください。

Python のバージョン管理ツール pyenv を使います。

環境
  • Mac mini (M1, 2020)
  • macOS Monterey
  • Homebrew 3.5.9

Homebrew を使うので、導入してない方はまずこちらをどうぞ。

目次

pyenv のインストール

pyenv は Python のバージョン管理ツールです。複数のバージョンの Python をインストールして、切り替えて使うことができるようになります。

そんなもんいらねーよと思っているあなた、Python をアップデートしたらプログラムが動かなくなってアタフタしているあなたの姿が私には見えています。この水晶玉にはっきりと映っているんですよ!(唐突な占い師キャラ)

準備

pyenv の情報を確認してみます。

% brew info pyenv
==> pyenv: stable 2.3.3 (bottled), HEAD
Python version management
https://github.com/pyenv/pyenv
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/pyenv.rb
License: MIT
==> Dependencies
Required: autoconf ✔, openssl@1.1 ✔, pkg-config ✔, readline ✔
==> Options
--HEAD
	Install HEAD version
==> Analytics
install: 172,656 (30 days), 486,568 (90 days), 1,781,185 (365 days)
install-on-request: 171,195 (30 days), 481,977 (90 days), 1,759,936 (365 days)
build-error: 0 (30 days)

だから何というわけでもありませんが、私は確認したい派です。

インストール

pyenv をインストールしましょう。

% brew install pyenv

パスを通す

pyenv init を実行してみてください。

% pyenv init
# Load pyenv automatically by appending
# the following to
~/.zprofile (for login shells)
and ~/.zshrc (for interactive shells) :

export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# Restart your shell for the changes to take effect.

~/.zprofile~/.zshrc にコードを追加してねと言われるのでそうします(従順)。

% echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile
% echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile
% echo 'eval "$(pyenv init -)"' >> ~/.zprofile

% echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
% echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
% echo 'eval "$(pyenv init -)"' >> ~/.zshrc

設定を反映させます。(ターミナルを閉じて開き直してもOK)

% source ~/.zprofile
% source ~/.zshrc

上記はシェルが zsh の場合の設定です。bash を使っている場合の設定ファイルは ~/.bashrc などになりますので読み替えて設定してください。

pyenv の使い方

pyenv でよく使うサブコマンドは次のとおりです。

サブコマンド説明
helpコマンドのヘルプを表示する
pyenv help <サブコマンド> で詳しい使い方を表示
install特定のバージョンの Python をインストールする
uninstall特定のバージョンの Python をアンインストールする
globalシステム全体で使う Python のバージョンを設定または表示する
local特定のディレクトリで使う Python のバージョンを設定または表示する
version現在の Python のバージョンとその設定ファイルを表示する
versionspyenv で利用可能なすべての Python バージョンを一覧表示する

Python のインストール

インストール可能なバージョンの確認

次のコマンドで、インストール可能なバージョンの一覧を表示できます。

% pyenv install -l
Available versions:
  2.1.3
  2.2.3
  2.3.7
  ...以下省略...

インストール

ここでは 2.7.18 と 3.10.6 の2つのバージョンをインストールしてみます。

% pyenv install 2.7.18
% pyenv install 3.10.6

ファイルは /Users/<username>/.pyenv 以下にインストールされます。

Python のバージョン切り替え

システム全体のバージョンの切り替え

システム全体で使う Python のバージョンを設定するには、サブコマンド global を使います。

% pyenv global 3.10.6

引数を渡さずに実行すると、現在グローバルに設定されているバージョンが表示されます。

% pyenv global
3.10.6

特定のディレクトリのバージョンの切り替え

特定のディレクトリで使う Python のバージョンを設定するには、サブコマンド local を使います。お目当てのディレクトリに移動してから設定します。

% cd /path/to/dir
% pyenv local 2.7.18

引数を渡さずに実行すると、そのディレクトリに設定されているバージョンが表示されます。

% cd /path/to/dir
% pyenv local
2.7.18

Python のバージョンの確認

Python のバージョンを確認するコマンドは3種類あります。

# (1)現在のバージョンとその設定ファイルを表示
% pyenv version
3.10.6 (set by /Users/<username>/.pyenv/version)

# (2)現在のバージョン番号のみを表示
% pyenv version-name
3.10.6

# (3)インストール済みのバージョンを一覧表示
# 肛門マーク(*)が付いているのが現在有効なバージョン
% pyenv versions
  system
  2.7.18
* 3.10.6 (set by /Users/<username>/.pyenv/version)

#(おまけ)もちろん python コマンドでも確認できます
% python -V
Python 3.10.6

でわでわ

MacにPythonをインストール

この記事が気に入ったら
いいね または フォローしてね!

シェアしてね

コメント

コメント一覧 (2件)

  • ちょうど悩んでいたんです。(と、言っても半年位になります)
    私はanyenv→pyenvと言う使い方をしているんですが、これで入れたPythondがGlobalに有効でもHomebrewのFormulaにDependenciesにPython@3.9を持っているものが多くてHomebrewでもPythonが勝手にインストールされる事があって「どうしよう?冗長だよなぁ…」と思っていますが、未だに解決の糸口も見えず…

    • pyenvとHomebrewではPythonのインストール先ディレクトリが違いますからね。利用できるバージョンの種類も違うので、これらを一本化するのは難しいでしょうね。
      それぞれのツールの利便性を享受する代償としてそういったムダが生じてしまうものと割り切って諦めるのが吉だと思います。

コメントする

目次