プレイヤーズ・ハイ

 雑多な日記

Python in Mac OS X

目次


Mac OS X 上で Python を使うためのメモです。

Homebrew で pyenv をインストールします。

pyenv は様々なバージョンの Python を簡単にスイッチできるソフトウェアです。

環境

  • Mac OS X 10.9.2

既存 Python 環境の確認

Python

$ which python
/usr/bin/python

$ python -V
Python 2.7.5

easy_install

Mac OS X の easy_install には --version オプションがありません。

$ which easy_install
/usr/bin/easy_install

pip

pip はデフォルトでインストールされていませんので,easy_install を使ってインストールします。

$ sudo easy_install pip
Searching for pip
Reading http://pypi.python.org/simple/pip/
Best match: pip 1.5.4
Downloading https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb
Processing pip-1.5.4.tar.gz
Running pip-1.5.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-lRbt2u/pip-1.5.4/egg-dist-tmp-oVCbYB
warning: no files found matching 'pip/cacert.pem'
warning: no files found matching '*.html' under directory 'docs'
warning: no previously-included files matching '*.rst' found under directory 'docs/_build'
no previously-included directories found matching 'docs/_build/_sources'
Adding pip 1.5.4 to easy-install.pth file
Installing pip script to /usr/local/bin
Installing pip2.7 script to /usr/local/bin
Installing pip2 script to /usr/local/bin

Installed /Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip

$ which pip
/usr/local/bin/pip

$ pip --version
pip 1.5.4 from /Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg (python 2.7)

インストール

Homebrew で pyenv をインストール

$ brew update
$ brew install pyenv
==> Downloading https://github.com/yyuu/pyenv/archive/v0.4.0-20140317.tar.gz
######################################################################## 100.0%
==> Caveats
To enable shims and autocompletion add to your profile:
  if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

To use Homebrew's directories rather than ~/.pyenv add to your profile:
  export PYENV_ROOT=/usr/local/opt/pyenv
==> Summary
🍺  /usr/local/Cellar/pyenv/20140317: 228 files, 2.3M, built in 5 seconds

以下を ~/.zshrc に追記し source コマンドで反映させます。

$ vi ~/.zshrc
# pyenv
# To enable shims and autocompletion add to your profile:
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
# To use Homebrew's directories rather than ~/.pyenv add to your profile:
#export PYENV_ROOT=/usr/local/opt/pyenv

$ source ~/.zshrc

Homebrew で pyenv-virtualenv をインストール

pyenv-virtualenv は pyenv のプラグインです。virtualenv 機能を提供します。

$ brew install pyenv-virtualenv
==> Downloading https://github.com/yyuu/pyenv-virtualenv/archive/v20140123.tar.gz
######################################################################## 100.0%
==> ./install.sh
🍺  /usr/local/Cellar/pyenv-virtualenv/20140123: 8 files, 44K, built in 2 seconds

pyenv を使って複数の Python をインストール

インストール可能な Python のリスト

$ pyenv install -l
Available versions:
  2.4
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5
  2.5.1
  2.5.2
  2.5.3
  2.5.4
  2.5.5
  2.5.6
  2.6-dev
  2.6.6
  2.6.7
  2.6.8
  2.6.9
  2.7
  2.7-dev
  2.7.1
  2.7.2
  2.7.3
  2.7.4
  2.7.5
  2.7.6
  3.0.1
  3.1-dev
  3.1.3
  3.1.4
  3.1.5
  3.2
  3.2-dev
  3.2.1
  3.2.2
  3.2.3
  3.2.4
  3.2.5
  3.3-dev
  3.3.0
  3.3.1
  3.3.2
  3.3.3
  3.3.4
  3.3.5
  3.4-dev
  3.4.0a2
  3.4.0a3
  3.4.0a4
  3.4.0b1
  3.4.0b2
  3.4.0b3
  3.4.0rc1
  3.4.0rc2
  3.4.0rc3
  anaconda-1.4.0
  anaconda-1.5.0
  anaconda-1.5.1
  anaconda-1.6.0
  anaconda-1.6.1
  anaconda-1.7.0
  anaconda-1.8.0
  jython-2.5-dev
  jython-2.5.0
  jython-2.5.1
  jython-2.5.2
  jython-2.5.3
  jython-2.5.4-rc1
  jython-2.7-beta1
  jython-dev
  miniconda-2.2.2
  miniconda-3.0.0
  miniconda3-2.2.2
  miniconda3-3.0.0
  pypy-1.5
  pypy-1.5-src
  pypy-1.6
  pypy-1.7
  pypy-1.7-dev
  pypy-1.8
  pypy-1.8-dev
  pypy-1.9
  pypy-1.9-dev
  pypy-2.0
  pypy-2.0-dev
  pypy-2.0-src
  pypy-2.0.1
  pypy-2.0.1-src
  pypy-2.0.2
  pypy-2.0.2-src
  pypy-2.1
  pypy-2.1-src
  pypy-2.2
  pypy-2.2-src
  pypy-2.2.1
  pypy-2.2.1-src
  pypy-dev
  pypy3-2.1-beta1
  pypy3-2.1-beta1-src
  pypy3-dev
  stackless-2.7-dev
  stackless-2.7.2
  stackless-3.2-dev
  stackless-3.2.2
  stackless-3.3-dev
  stackless-dev

pyenv で Python 2.7.6 をインストール

$ pyenv install 2.7.6
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Downloading readline-6.2.tar.gz...
-> http://yyuu.github.io/pythons/67948acb2ca081f23359d0256e9a271c
Installing readline-6.2...
Installed readline-6.2 to /usr/local/opt/pyenv/versions/2.7.6

Downloading Python-2.7.6.tgz...
-> http://yyuu.github.io/pythons/1d8728eb0dfcac72a0fd99c17ec7f386
Installing Python-2.7.6...
Installed Python-2.7.6 to /usr/local/opt/pyenv/versions/2.7.6

Downloading setuptools-3.3.tar.gz...
-> https://pypi.python.org/packages/source/s/setuptools/setuptools-3.3.tar.gz
Installing setuptools-3.3...
Installed setuptools-3.3 to /usr/local/opt/pyenv/versions/2.7.6

Downloading pip-1.5.4.tar.gz...
-> https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz
Installing pip-1.5.4...
Installed pip-1.5.4 to /usr/local/opt/pyenv/versions/2.7.6

pyenv で Python 3.3.5 をインストール

$ pyenv install 3.3.5
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Downloading readline-6.2.tar.gz...
-> http://yyuu.github.io/pythons/67948acb2ca081f23359d0256e9a271c
Installing readline-6.2...
Installed readline-6.2 to /usr/local/opt/pyenv/versions/3.3.5

Downloading Python-3.3.5.tgz...
-> http://yyuu.github.io/pythons/803a75927f8f241ca78633890c798021
Installing Python-3.3.5...
Installed Python-3.3.5 to /usr/local/opt/pyenv/versions/3.3.5

Downloading setuptools-3.3.tar.gz...
-> https://pypi.python.org/packages/source/s/setuptools/setuptools-3.3.tar.gz
Installing setuptools-3.3...
Installed setuptools-3.3 to /usr/local/opt/pyenv/versions/3.3.5

Downloading pip-1.5.4.tar.gz...
-> https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz
Installing pip-1.5.4...
Installed pip-1.5.4 to /usr/local/opt/pyenv/versions/3.3.5

pyenv でインストールされた Python を確認

$ pyenv versions
* system (set by /usr/local/opt/pyenv/version)
  2.7.6
  3.3.5

pyenv コマンド一覧

  • $ pyenv install -l

    • インストール可能なバージョン一覧を表示
  • $ pyenv install バージョン番号

    • インストール
  • $ pyenv uninstall バージョン番号

    • アンインストール
  • $ pyenv version

    • 現在のバージョンを表示
  • $ pyenv versions

    • インストール済みバージョン一覧を表示
  • $ pyenv shell バージョン番号

    • カレントシェルでのバージョン切替
  • $ pyenv local バージョン番号

    • カレントディレクトリーでのバージョン切替
  • $ pyenv global バージョン番号

    • システム全体でのバージョン切替

ローカルバージョン

特定のディレクトリー配下のみで有効な「ローカルバージョン」をセット

ディレクトリー ~/pyenv_test 配下のみで Python 3.3.5 を有効にしてみたいと思います。

$ cd ~
$ python -V
Python 2.7.5
$ mkdir pyenv_test
$ cd pyenv_test
$ pyenv local 3.3.5
$ python -V
Python 3.3.5
$ cd ..
$ python -V
Python 2.7.5

$ pyenv local バージョン番号 を実行すると .python-version が作成され,そこにバージョン番号が格納されます。

$ pyenv local バージョン番号 したあとに確認してみます。

$ cd ~/pyenv_test
$ cat .python-version
3.3.5

ローカルバージョンの解除

$ cd ~/pyenv_test
$ python -V
Python 3.3.5
$ pyenv local --unset
$ python -V
Python 2.7.5

$ pyenv local --unset を実行すると .python-version が存在する場合は削除されます。

$ pyenv local --unset したあとに確認してみます。

$ cd ~/pyenv_test
$ cat .python-version
cat: .python-version: No such file or directory

pyenv-virtualenv

pyenv-virtualenv を用いた仮想環境の構築

基本的なコマンドの使い方は以下のとおりです。

$ pyenv virtualenv --distribute バージョン番号 バージョン指定識別子

pyenv-virtualenv は、virtualenv を pyenv のプラグインにしたものです。

Python バージョンや,インストールされる Python モジュールが異なる,閉じられた仮想環境を構築することができます。

ここでは,Python バージョン 2.7.6, インストールモジュール gdata-python-client の環境に「gdata-python-client-2.7.6」という名前を付け,構築してみたいと思います。

$ pyenv virtualenv --distribute 2.7.6 gdata-python-client-2.7.6
Downloading/unpacking virtualenv
  Downloading virtualenv-1.11.4-py2.py3-none-any.whl (1.7MB): 1.7MB downloaded
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...
New python executable in /usr/local/opt/pyenv/versions/gdata-python-client-2.7.6/bin/python
Installing setuptools, pip...done.
$ cd ~
$ mkdir gdata-python-client
$ cd gdata-python-client
$ pyenv local gdata-python-client-2.7.6
$ python -V
2.7.6
$ unzip gdata-2.0.18.zip
Archive:  gdata-2.0.18.zip
  inflating: gdata-2.0.18/RELEASE_NOTES.txt
  inflating: gdata-2.0.18/README.txt
  inflating: gdata-2.0.18/setup.py
  中略
  inflating: gdata-2.0.18/tests/atom_tests/mock_http_core_test.py
  inflating: gdata-2.0.18/tests/atom_tests/http_interface_test.py
  inflating: gdata-2.0.18/tests/atom_tests/auth_test.py
$ cd gdata-2.0.18
$ python setup.py install
/usr/local/opt/pyenv/versions/2.7.6/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
  warnings.warn(msg)
running install
running build
running build_py
中略
byte-compiling /usr/local/opt/pyenv/versions/gdata-python-client-2.7.6/lib/python2.7/site-packages/gdata/youtube/client.py to client.pyc
byte-compiling /usr/local/opt/pyenv/versions/gdata-python-client-2.7.6/lib/python2.7/site-packages/gdata/youtube/data.py to data.pyc
byte-compiling /usr/local/opt/pyenv/versions/gdata-python-client-2.7.6/lib/python2.7/site-packages/gdata/youtube/service.py to service.pyc
running install_egg_info
Writing /usr/local/opt/pyenv/versions/gdata-python-client-2.7.6/lib/python2.7/site-packages/gdata-2.0.18-py2.7.egg-info

pyenv-virtualenv 仮想環境の削除

仮想環境を削除するときは以下のように行います。

$ pyenv uninstall gdata-python-client-2.7.6

Amazon Linux の場合

以下の記事をどうぞ!

Python in Amazon Linux - インストール編 (pyenv) - 限りなくクラウドに近いオンプレミス

Python in Amazon Linux - インストール編 (pyenv-virtualenv) - 限りなくクラウドに近いオンプレミス

Pythonスタートブック

Pythonスタートブック

みんなのPython 第3版

みんなのPython 第3版

パーフェクトPython (PERFECT SERIES 5)

パーフェクトPython (PERFECT SERIES 5)

  • 作者: Pythonサポーターズ,露木誠,ルイス・イアン,石本敦夫,小田切篤,保坂翔馬,大谷弘喜
  • 出版社/メーカー: 技術評論社
  • 発売日: 2013/03/05
  • メディア: 大型本
  • 購入: 1人 クリック: 65回
  • この商品を含むブログ (30件) を見る