ポイント
- デフォルトで Mac にインストールされる Python と Homebrew でインストールする Python 2、Python 3 のコマンドやパスに注意。これらは互いを上書きしない、競合しない。
- Mac デフォルト Python
- コマンド:
python
- パス:
/usr/bin/python
- コマンド:
- Homebrew Python 2
- コマンド:
python2
- パス:
/usr/local/bin/python2
- コマンド:
- Homebrew Python 3
- コマンド:
python3
- パス:
/usr/local/bin/python3
- コマンド:
環境
- MacBook Pro (Retina, 13-inch, Late 2012)
- OS X El Capitan バージョン 10.11.3
- Homebrew 0.9.5 (git revision 0fe95; last commit 2016-03-21)
インストール前状態
$ which python /usr/bin/python $ python --version Python 2.7.10 $
Homebrew 準備
上記投稿の通り、Homebrew 自体は入っておりますので、状態の確認と、アップデート、アップグレードのみ行いました。
$ brew doctor Your system is ready to brew. $ brew update Already up-to-date. $ brew upgrade $
インストールする Python 確認
$ brew search python app-engine-python gst-python python-markdown wxpython boost-python python python3 zpython homebrew/apache/mod_python Caskroom/cask/mysql-connector-python homebrew/python/python-dbus Caskroom/cask/python homebrew/python/vpython Caskroom/cask/python3 homebrew/versions/gst-python010 $
Homebrew でインストールするのは python3 です。python はバージョン 2 でしたので、今回目的とするバージョン 3 とは異なりますの!
Python 3 インストール
brew install python3
完了まで、約 4 分かかりました。意外と長かったです!
とはいえ、インストールはこれで完了です♪簡単ですの!
PATH の設定確認
フルパスではなく、python3
と打つだけで使えるようにしたいですわ!
そのためには PATH の設定が必要となりますけれども。。。すでに設定されており、不要でしたの♪
$ python3 --version Python 3.5.1 $ which python3 /usr/local/bin/python3 $
PATH そのものを確認しましても、/usr/local/bin が既に含まれております。
$ export -p ... 略 ... declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" ... 略 ...
おまけ。勘違いから来た、試行錯誤の記録><
インストール後、PATH の設定でのお話です。
わたくしは、python
コマンドで Python 3 が使えるようになるとばかり思い込んでおりました。
そのようにすることは可能でしょうけれども、それ以前に python3
コマンドで Python 3 が使えるようになったことに気がつかないために次のように、悩んでしまいました><。
PATH の設定が変?Python 3 が使えない
~/.bash_profile ファイルはありませんでしたので、作成しました。
export PATH=/usr/local/bin:$PATH
$ source ~/.bash_profile
確認です。
$ which python /usr/bin/python $ python --version Python 2.7.10 $
おかしいです><。Python 3 となりません。
PATH を確認してみます。
$ export -p ... 略 ... declare -x PATH="/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" ... 略 ...
/usr/local/bin:/usr/local/bin
と同じものが 2 つ設定されています。ということは、最初から /usr/local/bin
は設定されており、不要な設定を追加してしまった、ということかしら。
rm ~/.bash_profile
ファイルを削除しましたので、反映するためには source
コマンドは使えません。ターミナルを再起動して確認します。
$ export -p ... 略 ... declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" ... 略 ...
余分な /usr/local/bin
が削除されました。しかし、python3
へのパスとならないのは相変わらずです><。
ここで、もしかして!?と思い当たりました。インストール時に、python3
と指定していたのです。
ということは、コマンドは python3
なのかしら。。。
$ python3 --version Python 3.5.1 $ which python3 /usr/local/bin/python3 $
やっぱり!
使い分けたいときはよさそうですわね。。。
気がついてしまえば当たり前ですの。Homebrew での表示も python3 ですもの!
$ brew list gdbm pkg-config readline xz openssl python3 sqlite $ brew list python3 /usr/local/Cellar/python3/3.5.1/bin/2to3-3.5 /usr/local/Cellar/python3/3.5.1/bin/easy_install-3.5 /usr/local/Cellar/python3/3.5.1/bin/idle3 /usr/local/Cellar/python3/3.5.1/bin/idle3.5 /usr/local/Cellar/python3/3.5.1/bin/pip3 /usr/local/Cellar/python3/3.5.1/bin/pip3.5 /usr/local/Cellar/python3/3.5.1/bin/pydoc3 /usr/local/Cellar/python3/3.5.1/bin/pydoc3.5 /usr/local/Cellar/python3/3.5.1/bin/python3 /usr/local/Cellar/python3/3.5.1/bin/python3-config /usr/local/Cellar/python3/3.5.1/bin/python3.5 /usr/local/Cellar/python3/3.5.1/bin/python3.5-config /usr/local/Cellar/python3/3.5.1/bin/python3.5m /usr/local/Cellar/python3/3.5.1/bin/python3.5m-config /usr/local/Cellar/python3/3.5.1/bin/pyvenv /usr/local/Cellar/python3/3.5.1/bin/pyvenv-3.5 /usr/local/Cellar/python3/3.5.1/bin/wheel3 /usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/ (6785 files) /usr/local/Cellar/python3/3.5.1/IDLE 3.app/Contents/ (8 files) /usr/local/Cellar/python3/3.5.1/lib/pkgconfig/ (3 files) /usr/local/Cellar/python3/3.5.1/libexec/pip/ (516 files) /usr/local/Cellar/python3/3.5.1/libexec/setuptools/ (232 files) /usr/local/Cellar/python3/3.5.1/libexec/wheel/ (93 files) /usr/local/Cellar/python3/3.5.1/Python Launcher 3.app/Contents/ (16 files) /usr/local/Cellar/python3/3.5.1/share/man/ (2 files) $
おまけ。Homebrew Python のアンインストール
$ brew uninstall python3 Uninstalling /usr/local/Cellar/python3/3.5.1... (7,642 files, 106.7M) $
確認です。python3 がなくなっていることが確認できました。
$ brew list gdbm pkg-config sqlite openssl readline xz $
おまけ。Python3 インストール時のログ
$ brew install python3 ==> Installing dependencies for python3: xz, pkg-config, readline, sqlite, gdbm, openssl ==> Installing python3 dependency: xz ==> Downloading https://homebrew.bintray.com/bottles/xz-5.2.2.el_capitan.bottle.tar.gz ######################################################################## 100.0% ==> Pouring xz-5.2.2.el_capitan.bottle.tar.gz /usr/local/Cellar/xz/5.2.2: 59 files, 1.4M ==> Installing python3 dependency: pkg-config ==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.29.1.el_capitan.bottle.tar.gz ######################################################################## 100.0% ==> Pouring pkg-config-0.29.1.el_capitan.bottle.tar.gz /usr/local/Cellar/pkg-config/0.29.1: 10 files, 626.1K ==> Installing python3 dependency: readline ==> Downloading https://homebrew.bintray.com/bottles/readline-6.3.8.el_capitan.bottle.tar.gz ######################################################################## 100.0% ==> Pouring readline-6.3.8.el_capitan.bottle.tar.gz ==> Caveats This formula is keg-only, which means it was not symlinked into /usr/local. OS X 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. Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables: LDFLAGS: -L/usr/local/opt/readline/lib CPPFLAGS: -I/usr/local/opt/readline/include ==> Summary /usr/local/Cellar/readline/6.3.8: 40 files, 2.0M ==> Installing python3 dependency: sqlite ==> Downloading https://homebrew.bintray.com/bottles/sqlite-3.11.0_1.el_capitan.bottle.tar.gz ######################################################################## 100.0% ==> Pouring sqlite-3.11.0_1.el_capitan.bottle.tar.gz ==> Caveats This formula is keg-only, which means it was not symlinked into /usr/local. OS X provides an older sqlite3. Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables: LDFLAGS: -L/usr/local/opt/sqlite/lib CPPFLAGS: -I/usr/local/opt/sqlite/include ==> Summary /usr/local/Cellar/sqlite/3.11.0_1: 9 files, 2.8M ==> Installing python3 dependency: gdbm ==> Downloading https://homebrew.bintray.com/bottles/gdbm-1.11.el_capitan.bottle.2.tar.gz ######################################################################## 100.0% ==> Pouring gdbm-1.11.el_capitan.bottle.2.tar.gz /usr/local/Cellar/gdbm/1.11: 17 files, 485.2K ==> Installing python3 dependency: openssl ==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2g.el_capitan.bottle.tar.gz ######################################################################## 100.0% ==> Pouring openssl-1.0.2g.el_capitan.bottle.tar.gz ==> Caveats A CA file has been bootstrapped using certificates from the system keychain. To add additional certificates, place .pem files in /usr/local/etc/openssl/certs and run /usr/local/opt/openssl/bin/c_rehash This formula is keg-only, which means it was not symlinked into /usr/local. Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables: LDFLAGS: -L/usr/local/opt/openssl/lib CPPFLAGS: -I/usr/local/opt/openssl/include ==> Summary /usr/local/Cellar/openssl/1.0.2g: 466 files, 11.9M ==> Installing python3 Warning: Building python3 from source: The bottle needs the Xcode CLT to be installed. ==> Downloading https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz ######################################################################## 100.0% ==> Downloading https://bugs.python.org/file40478/xcode-stubs.diff ######################################################################## 100.0% ==> Patching ==> Applying xcode-stubs.diff patching file Lib/distutils/ccompiler.py patching file Lib/distutils/unixccompiler.py ==> ./configure --prefix=/usr/local/Cellar/python3/3.5.1 --enable-ipv6 --datarootdir=/usr/local ==> make ==> make install PYTHONAPPSDIR=/usr/local/Cellar/python3/3.5.1 ==> make frameworkinstallextras PYTHONAPPSDIR=/usr/local/Cellar/python3/3.5.1/share/python3 ==> Downloading https://pypi.python.org/packages/source/s/setuptools/setuptools-19.4.tar.gz ######################################################################## 100.0% ==> Downloading https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz ######################################################################## 100.0% ==> Downloading https://pypi.python.org/packages/source/w/wheel/wheel-0.26.0.tar.gz ######################################################################## 100.0% ==> /usr/local/Cellar/python3/3.5.1/bin/python3 -s setup.py --no-user-cfg install --force --ver ==> /usr/local/Cellar/python3/3.5.1/bin/python3 -s setup.py --no-user-cfg install --force --ver ==> /usr/local/Cellar/python3/3.5.1/bin/python3 -s setup.py --no-user-cfg install --force --ver ==> Caveats Pip and setuptools have been installed. To update them pip3 install --upgrade pip setuptools You can install Python packages with pip3 install <package> They will install into the site-package directory /usr/local/lib/python3.5/site-packages See: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Homebrew-and-Python.md .app bundles were installed. Run `brew linkapps python3` to symlink these to /Applications. ==> Summary /usr/local/Cellar/python3/3.5.1: 7,642 files, 106.7M, built in 3 minutes 32 seconds $
おわりに
バージョンを細かくわけなくて良い、本家サイトからパッケージをダウンロードしてインストールするのはちょっと面倒、Homebrew でパッとインストールできるならしたい、そのように感じて今回、Python3 を Homebrew でインストール、動作確認をいたしました。
最後に、参考ページです。つまづいたため、多くのページを調べました。
- Pythonインストール(Mac編) – Qiita
- homebrew/Homebrew-and-Python.md at master · Homebrew/homebrew
- Homebrewインストールとオペレーション – Qiita
- PATHを通すために環境変数の設定を理解する (Mac OS X) – Qiita
以上です。