macOS Mojave に Python 3.6 環境を構築する

Satoshi Oikawa
Jun 11 · 5 min read

macOS Mojave で Python 3.6 系をインストールする場合に,いつくかハマりどころがあったのでトラブルシューティングとして記事にしておきます。

brew で Python3 をインストールすると 3.7系がインストールされる

$ brew install python3
$ python3 --version
Python 3.7.7

あえて3.6にダウングレードする必要がない場合は完了になります。私の場合は特定のモジュールが3.7に対応しておらず,3.6にダウングレードする必要がありました。

明示的にバージョンを3.6.5に固定して brew install します。

$ brew unlink python$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb$ brew switch python 3.6.5_1$ python3 --version
Python 3.6.5
$ which python3
/usr/local/bin/python3

以上で,無事にPython 3.6 系のインストール完了です。


上記で解決できたのですが,pyenv を使って Python 3.6 にダウングレードする方法でも試したので残しておきます。ハマりどころは Mojave だとSDK Headers をインストールする必要があることです。

$ xcode-select --install# optional, but recommended:
brew install openssl readline sqlite3 xz zlib
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
$ pyenv install 3.6.8

下記エラーが表示された場合は,SDK headers のインストールが必要です。

省略
.....
self.build_extensions()
File "/private/var/folders/x9/xxx/T/pip-install-amimhs0g/Pillow/setup.py", line 582, in build_extensions
raise RequiredDependencyException(f)
__main__.RequiredDependencyException: zlib
During handling of the above exception, another exception occurred:Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/x9/xxx/T/pip-install-amimhs0g/Pillow/setup.py", line 806, in <module>
raise RequiredDependencyException(msg)
__main__.RequiredDependencyException:
The headers or library files could not be found for zlib,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html
----------------------------------------
ERROR: Failed building wheel for Pillow

Satoshi Oikawa

Written by

Product and Engineering guy.