macOSにPython3をインストールする

はじめに

MacBookでPythonの勉強をしようとしたところ、標準インストールされているバージョンがPython 2.7でした。

% sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.4
BuildVersion:   19E287

% python -V
Python 2.7.16

現在主流のPython3とPython2では若干異なる部分があるため、macOSにPython3をインストールしてみました。

Homebrewのインストール

パッケージマネージャのHomebrewをインストールしていない場合は、ターミナルからHomebrewのインストールを実施します。

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Python3のインストール

brewコマンドでPython3をインストールしようとしたところ、Apple Command Line Toolsがインストールされていないという警告メッセージが表示されました。

% brew install python
Updating Homebrew...
(略)
Error: python@3.9: the bottle needs the Apple Command Line Tools to be installed.
  You can install them, if desired, with:
    xcode-select --install
You can try to install from source with:
  brew install --build-from-source python@3.9

メッセージの指示通り、Apple Command Line Toolsのインストールコマンドを実行すると、GUI上にソフトウェアのインストーラが表示されダウンロードが開始します。インストールが完了するまでしばらく待ちます。

% xcode-select --install

再度brewコマンドを実行すると、今度はリンクが張られていない旨のエラーと、ディレクトリの権限エラーが出ました。

% brew install python
(略)
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

まずは、ディレクトリ権限エラーの解消のため、該当ディレクトリを作成し、権限を付与します。

% sudo mkdir /usr/local/Frameworks
% sudo chown $(whoami):admin /usr/local/Frameworks
% brew install python
(略)
Warning: python@3.9 3.9.1_8 is already installed, it's just not linked.
To link this version, run:
  brew link python@3.9

今度はリンクが張られていない旨のエラーが出たので、指示通りにコマンドを実行します。

% brew link python@3.9
Linking /usr/local/Cellar/python@3.9/3.9.1_8... 24 symlinks created.

今度こそ動いた!

% python3.9 -V
Python 3.9.1
% python3.9
Python 3.9.1 (default, Feb  3 2021, 07:04:15) 
[Clang 12.0.0 (clang-1200.0.32.29)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello World.')
Hello World.

参考文献

Homebrewで入れたPythonでのlinkエラー問題

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です