Mac(El Captitan) にPython3系を入れてみた
今回はMacに、Python3系を入れようとしたので、その備考録。
Macには元々、Python2.7が入っていたけど、それも共存させながら切り替えて使用できるっぽいので、それを試してみました。
Macにパスを設定
参考[1]より丸っとコピペさせてもらいました。
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
Pythonのインストール
今回は「Python 3.5.0a4」を入れてみようかと。
$ pyenv install --list //とりあえず何があるか確認する $ pyenv install 3.5.0a4
ここでエラー
以下のようなエラーが出た。
Downloading Python-3.5.0a4.tgz... -> https://www.python.org/ftp/python/3.5.0/Python-3.5.0a4.tgz Installing Python-3.5.0a4... ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? Please consult to the Wiki page to fix the problem. https://github.com/yyuu/pyenv/wiki/Common-build-problems BUILD FAILED (OS X 10.11.4 using python-build 20141028) Inspect or clean up the working tree at /var/folders/89/bc34h7h57g993dw_17pryfb00000gn/T/python-build.20160504030211.19754 Results logged to /var/folders/89/bc34h7h57g993dw_17pryfb00000gn/T/python-build.20160504030211.19754.log Last 10 log lines: (cd /Users/takuma/.pyenv/versions/3.5.0a4/share/man/man1; ln -s python3.5.1 python3.1) if test "xupgrade" != "xno" ; then \ case upgrade in \ upgrade) ensurepip="--upgrade" ;; \ install|*) ensurepip="" ;; \ esac; \ ./python.exe -E -m ensurepip \ $ensurepip --root=/ ; \ fi Ignoring ensurepip failure: pip 6.1.1 requires SSL/TLS
解決法を検索
「ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?」でググッて、以下を実行
$ xcode-select --install CFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ pyenv install -v 3.5.0a4 CFLAGS=-I/usr/include/openssl \ LDFLAGS=-L/usr/lib64 \ pyenv install -v 3.5.0a4
効果なし…
以上のことをやってみても、エラーは解消しなかった。
今回の解決法
今回は以下の方法で、無事にPython 3.5.1を入れることができました。
pyenvのアップデート
pyenvのバージョンを調べてみたところ「pyenv-20150404」が私のには入っているようでした。
しょうがないので、最新版を入れてみることに。
brewのアップデート
pyenvのバージョンを最新にするために、brewをアップデートしてみた。
方法は以下。
$ brew update
但し、ここで以下のようなエラーが出てしまった場合は
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mach (LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/Library/Homebrew/extend/pathname.rb:2:in `<top (required)>' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/Library/Homebrew/global.rb:3:in `<top (required)>' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/Library/brew.rb:15:in `<main>'
たぶん、このままではbrewコマンドが一切使えない気がするので、以下を実行。
//一旦brewのディレクトリを元に戻す $ cd /usr/local $ git reset --hard && git clean -df $ sudo chown -R $(whoami):admin /usr/local brew update
これでbrewが最新にアップデートできた。
$ brew --version Homebrew 0.9.9 (git revision f653c; last commit 2016-05-04)
このあと、pyenvを最新にするために以下を。
$ brew install pyenv Error: pyenv-20150404 already installed To install this version, first `brew unlink pyenv` $ brew unlink pyenv Unlinking /usr/local/Cellar/pyenv/20150404... 5 symlinks removed $brew install pyenv
これでpyenvが最新になった。
$ pyenv --version pyenv 20160422
あとはこの状態で下を実行すると、「pyenv-20150404」ではでてこなかった、「python 3.5.1」が出てきた。
//インストールできるリストを確認 $ pyenv install --list //インストールしてみる $ pyenv install 3.5.1
以上でpython3.5.1を入れることができました。
Pythonを3.5.1に切り替える
インストールだけでは以下のようになっている.
$ pyenv versions * system (set by /Users/takuma/.pyenv/version) 3.5.1
Python3系に切り替えてみる。
$ pyenv global 3.5.1 $ pyenv rehash
確認。
$ pyenv versions system * 3.5.1 (set by /Users/takuma/.pyenv/version) $ python --version Python 3.5.1
長くなったけど、これでPython3.5.1のインストールができて使用できる状態になりました。