概要
複数バージョンの切り替えが可能なPython環境をHomebrewでインストールしてみます。
環境
MacOS 10.14.1
Xcode(Command Line Tools) 10.1
Homebrew 1.8.3
Command Line Toolsがインストールされていない人はこちら
Homebrewがインストールされていない人はこちら
Homebrewがアップデートされていない人はこちら
インストールバージョン
Python 3.7.1
pyenv 1.2.8
pyenvのインストール
早速Pythonのインストールを行いたいところですが、まずは複数バージョンのPython環境を使えるようにpyenvをインストールします。
特につまづくところはなくインストールコマンドを実行するだけです。
$ brew install pyenv
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
No changes to formulae.
==> Installing dependencies for pyenv: readline
==> Installing pyenv dependency: readline
==> Downloading https://homebrew.bintray.com/bottles/readline-7.0.5.mojave.bottle.tar.gz
######################################################################## 100.0%
==> Pouring readline-7.0.5.mojave.bottle.tar.gz
==> Caveats
readline is keg-only, which means it was not symlinked into /usr/local,
because macOS provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.
For compilers to find readline you may need to set:
export LDFLAGS="-L/usr/local/opt/readline/lib"
export CPPFLAGS="-I/usr/local/opt/readline/include"
==> Summary
🍺 /usr/local/Cellar/readline/7.0.5: 46 files, 1.5MB
==> Installing pyenv
==> Downloading https://homebrew.bintray.com/bottles/pyenv-1.2.8.mojave.bottle.tar.gz
######################################################################## 100.0%
==> Pouring pyenv-1.2.8.mojave.bottle.tar.gz
🍺 /usr/local/Cellar/pyenv/1.2.8: 612 files, 2.4MB
==> Caveats
==> readline
readline is keg-only, which means it was not symlinked into /usr/local,
because macOS provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.
For compilers to find readline you may need to set:
export LDFLAGS="-L/usr/local/opt/readline/lib"
export CPPFLAGS="-I/usr/local/opt/readline/include"
pyenvの確認
pyenvが正常にインストールされたか確認してみます。
今回の最新バージョンは1.2.8 でした。
$ pyenv --version
pyenv 1.2.8
ZipImportErrorの回避
Pythonインストール前にMacOS Mojaveでは以下のエラーが発生するので事前にエラー回避しておきましょう。
$ zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
以下のコマンドでエラーを回避します。
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Pythonのインストール
では待望のPythonをインストールします。
$ pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
2.4
2.4.1
2.4.2
(一部抜粋)
たくさんのバージョンが一覧表示されている(上記は一部抜粋)かと思いますが、今回は3.7.1 をインストールしたいと思います。
$ pyenv install 3.7.1
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.1.tar.xz...
-> https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
Installing Python-3.7.1...
python-build: use readline from homebrew
Installed Python-3.7.1 to /Users/username/.pyenv/versions/3.7.1
Python、pyenvの設定と確認
インストールしたPythonのバージョンを確認してみます。
$ python --version
Python 2.7.10
デフォルトではMacOSのPythonを使用するので、先ほどインストールしたバージョンではありません。
まずはpyenvで使用するPythonのバージョンを設定します。
$ pyenv global 3.7.1
次にpyenvにパスを通します。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
bash_profileの保存を適用します。
$ source ~/.bash_profile
もう一度、Pythonのバージョンを確認してみましょう。
$ python --version
Python 3.7.1
Pythonのバージョンは変わりましたか?
これで無事Pythonのインストールは完了です。
お疲れ様でした。