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

Satoshi Oikawa
Jun 11, 2019 · 5 min read

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

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

$ brew install python3
$ python3 --version
Python 3.7.7


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

$ brew unlink python$ brew install --ignore-dependencies$ brew switch python 3.6.5_1$ python3 --version
Python 3.6.5
$ which 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

pyenv install のエラーログ

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

File "/private/var/folders/x9/xxx/T/pip-install-amimhs0g/Pillow/", 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/", line 806, in <module>
raise RequiredDependencyException(msg)
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:
ERROR: Failed building wheel for Pillow

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store