macにpyenv経由でpython入れる(デフォルトのpythonは触らないようにしましょう)

久しぶりにpythonを使う用事ができたので、pythonとか何も触ったことのないmacに環境を入れることに(?)しました。

rubyと異なり、macにデフォルトで入っているpythonは、システムが利用するそうで、アンインストールなどは考える必要はないです(考えてはいけません)。

公式によると、

Apple が提供している Python は /System/Library/Frameworks/Python.framework と /usr/bin/python にそれぞれインストールされています。
これらは Apple が管理しているものであり Apple やサードパーティのソフトウェアが使用するので、編集したり削除してはいけません。
python.org から新しいバージョンの Python をインストールすることにした場合には、異なるが動作する 2 つの Python 環境があなたのコンピュータにあることに注意し、パスの設定や Python の使い方と実際にしたいこととが食い違っていないことが重要です。

です。

pyenvをインストール

早速、homebrewpyenvをインストールします。

$ brew install pyenv
==> Installing dependencies for pyenv: readline
==> Installing pyenv dependency: readline
==> Downloading https://homebrew.bintray.com/bottles/readline-6.3.8.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring readline-6.3.8.yosemite.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: 46 files, 2M
==> Installing pyenv
==> Downloading https://github.com/yyuu/pyenv/archive/v20160629.tar.gz
==> Downloading from https://codeload.github.com/yyuu/pyenv/tar.gz/v20160629
######################################################################## 100.0%
==> Caveats
To use Homebrew's directories rather than ~/.pyenv add to your profile:
  export PYENV_ROOT=/usr/local/var/pyenv

To enable shims and autocompletion add to your profile:
  if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
==> Summary
🍺  /usr/local/Cellar/pyenv/20160629: 500 files, 2.2M, built in 8 seconds
$ brew install pyenv-virtualenv
==> Downloading https://github.com/yyuu/pyenv-virtualenv/archive/v20160315.tar.gz
==> Downloading from https://codeload.github.com/yyuu/pyenv-virtualenv/tar.gz/v20160315
######################################################################## 100.0%
==> ./install.sh
==> Caveats
To enable auto-activation add to your profile:
  if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
==> Summary
🍺  /usr/local/Cellar/pyenv-virtualenv/20160315: 19 files, 57.9K, built in 5 seconds

.bash_profileにパスを追記

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

$ source ~/.bash_profile

読み込ませると、さっそく.pyenvができてます。

$ ls -la ~
...(略)...
drwxr-xr-x    4 kobachi  staff    136  7 29 16:33 .pyenv
...(略)...
$ pyenv install -l

Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
 ...(略)

anacondaとかpypyとかもずらっとでます。

こちらによると本日(2016/7/29時点)の
現行の製品版で安定版はPython 2.7.3Python 3.3.0とのこと。

とのことなので、python 3.3.0を入れることにします。

$ pyenv install 3.3.0
Downloading Python-3.3.0.tgz...
-> http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz
Installing Python-3.3.0...
patching file ./Modules/readline.c
Hunk #1 succeeded at 225 (offset -6 lines).
Hunk #2 succeeded at 759 (offset -14 lines).
Hunk #3 succeeded at 812 (offset -14 lines).
Hunk #4 succeeded at 870 (offset -14 lines).
Hunk #5 succeeded at 918 with fuzz 2 (offset -25 lines).
patching file ./Lib/ssl.py
Hunk #2 succeeded at 618 (offset -31 lines).
patching file ./Modules/_ssl.c
Hunk #1 succeeded at 1683 (offset -63 lines).
Hunk #2 succeeded at 2750 (offset -94 lines).
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
ERROR: The Python zlib extension was not compiled. Missing the zlib?

Please consult to the Wiki page to fix the problem.
https://github.com/yyuu/pyenv/wiki/Common-build-problems


BUILD FAILED (OS X 10.10.4 using python-build 20160130)

Inspect or clean up the working tree at /var/folders/db/_7swh0117jb0l7qz9fsc4gkm0000gn/T/python-build.20160729164411.88439
Results logged to /var/folders/db/_7swh0117jb0l7qz9fsc4gkm0000gn/T/python-build.20160729164411.88439.log

Last 10 log lines:
rm -f /Users/Kobachi/.pyenv/versions/3.3.0/lib/pkgconfig/python3.pc
(cd /Users/Kobachi/.pyenv/versions/3.3.0/lib/pkgconfig; ln -s python-3.3.pc python3.pc)
rm -f /Users/Kobachi/.pyenv/versions/3.3.0/bin/idle3
(cd /Users/Kobachi/.pyenv/versions/3.3.0/bin; ln -s idle3.3 idle3)
rm -f /Users/Kobachi/.pyenv/versions/3.3.0/bin/pydoc3
(cd /Users/Kobachi/.pyenv/versions/3.3.0/bin; ln -s pydoc3.3 pydoc3)
rm -f /Users/Kobachi/.pyenv/versions/3.3.0/bin/2to3
(cd /Users/Kobachi/.pyenv/versions/3.3.0/bin; ln -s 2to3-3.3 2to3)
rm -f /Users/Kobachi/.pyenv/versions/3.3.0/bin/pyvenv
(cd /Users/Kobachi/.pyenv/versions/3.3.0/bin; ln -s pyvenv-3.3 pyvenv)

エラーが出ました。

エラー中に記載のあるhttps://github.com/yyuu/pyenv/wiki/Common-build-problemsを参照すると、

Mac OS X 10.910.10では新しいバージョンをインストールするには、zlibを見つけるための設定としてCFLAGSという環境変数を設定しなければならないとのこと。
(+先にXCodeがインストールされていないといけないとのこと。)

XCodeは入っているので環境変数を設定します。

$ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include"
$ pyenv install -v 3.3.0
...(略)...
Installed Python-3.3.0 to /Users/Kobachi/.pyenv/versions/3.3.0

インストールできました!

pyenvの使い方

コマンドオプション 説明
commands 全ての利用可能なpyenvのコマンドを表示します。
local 特定のローカルアプリケーションにPythonのバージョンを設定または表示します。
global グローバルのPythonのバージョンを表示します。
shell 特定のシェルにPythonのバージョンを設定または表示します。
install python-buildを使用して、特定のバージョンのPythonをインストールします。
uninstall 特定のバージョンのPythonをアンインストールします。
rehash pyenvのshimsをRehasします。(インストール実行後に走らせる)
version 現在のPythonのバージョンとそれ自身を表示します。
versions pyenvで利用可能な全てのpythonのバージョンを表示します。
which 実行ファイルのフルパスを表示します。

参考
4. Macintosh で Python を使う(原文)

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク