Lento con forza

大学生気分のIT系エンジニアが色々書いてく何か。ブログ名決めました。

MacにPython3.3を入れようとしたけどうまく入らなかった。

Mac上でのPython2.xとPython3.xの共存のお話です。

インターンとかでPythonの話もして、そろそろ3.xに足を踏み入れようかな―と思って、Python3系のインストール作業を行っていました。

brew install python3

でサクッと入ることを期待してたんけど、そんな甘くはなかった。

いや、brewを使えばPython3.x自体はさくっと入って、"python"と"python3"で切り替えれるようにはなったんですけど、以下のようなエラーが出てpip3がうまく動きませんでした。

Traceback (most recent call last):
File "/usr/local/bin/pip3", line 5, in
from pkg_resources import load_entry_point
File "/usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/distribute-0.6.49-py3.3.egg/pkg_resources.py", line 2882, in
parse_requirements(__requires__), Environment()
File "/usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/distribute-0.6.49-py3.3.egg/pkg_resources.py", line 596, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==1.4.1

結論からいうとなんかの拍子にpipが壊れちゃったらしいので、pipを再インストールしてあげたら直りました。

sudo easy_install-3.3 --upgrade pip

pipでpython2.7に、pip3でpython3.3にインストールという使い方をしたかったんですけど、
これだと2.x系で使うpipもアップデートされてしまって、期待される動作がしません。

Kouki-2:~ kouki$ pip --version
pipip 1.5.4 from /usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pip-1.5.4-py3.3.egg (python 3.3)
Kouki-2:~ kouki$ pip3 --version
pip 1.5.4 from /usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pip-1.5.4-py3.3.egg (python 3.3)

ということで、python2系で使うpipをeasy_installで上書きしちゃいました。

sudo easy_install pip


これを実行したあとは

Kouki-2:~ kouki$ pip --version
pip 1.2.1 from /Library/Python/2.7/site-packages/pip-1.2.1-py2.7.egg (python 2.7)
Kouki-2:~ kouki$ pip3 --version
pip 1.5.4 from /usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pip-1.5.4-py3.3.egg (python 3.3)

こんな感じになって、
pipを使えばPython2.xに
pip3を使えばPython3.xにインストールができるようになっているはずです。


ちなみにですが、PILはPython2.7までしか対応してないので、Python3.xでPILを使いたいってなったらpillowなる物を使わなければならないです。
これを知らなくて、「あれー、PILインストールできないなぁ。どこか間違ってるのかなぁ。」ってちょっと悩みました。

参考:Python3.3対応画像処理ライブラリ Pillow(PIL) の使い方 | Librabuch


virtualenv使おうかなぁ・・・。