Hatena::ブログ(Diary)

/var/log RSSフィード

2012-01-03

python環境の移行

| 12:12 | python環境の移行を含むブックマーク

  • 環境
  • 本体:本体:MBP 15-inch, Mid 2009
  • OSMac OS X Lion(10.7.2)

Macデフォルトではいっているpythonで開発することに限界を感じはじめたので

作業の裏で少しずつ環境を移行していこうと思います.


限界といってもpygameを使う事を前提に考えるとちょっと...というのが本音.

僕程度の用途だと別にそれ以外の面では困った事にはならないのですが


参考にしたのは下記のサイト.


homebrewを実行したあとにpythonインストールを実施しました.

brew install python

これで下記のようなシンボリックリンクがはられます.

/usr/local/bin/python -> ../Cellar/python/2.7.2/bin/python

この python が呼び出されるように.bash_profileなどで環境変数を設定してあげます.

やり方は色々あると思いますので詳細は割愛しますが,ざっくり以下の設定でいいと思います.

export PATH=/usr/local/bin:$PATH


これでpythonそのものはインストールできたのですが

サードパーティ製のパッケージをインストルするあたりが若干うるさいことになっています.

(easy_install とか pip の話です)


実はeasy_installはインストールしたpythonの環境毎に別途しれっとインストールされています.

homebrewインストールした時には下記のフォルダに入ってます.

/usr/local/share/python/easy_install-2.7
/usr/local/share/python/easy_install

必要に応じて下記の通りシンボリックリンクを張っておくなりしておけば大丈夫です.

ln -s /usr/local/share/python/easy_install /usr/local/bin/easy_install
ln -s /usr/local/share/python/easy_install-2.7 /usr/local/bin/easy_install-2.7


これで準備完了かと思いきや意外な所に落とし穴がありました...

easy_install の先頭のpythonの呼び出しの設定の箇所が下記のようになっています.

#!/usr/bin/python

私の環境だとこれでは別のpythonが呼び出されてしまいますので

別途,下記の通り変更しました.

#!/usr/bin/env python

これで環境変数上呼び出されているpythonの環境でeasy_installが動くようになります.

(`which python`したときのpythonが使われます)



あとは,easy_install 使って下記のようにpipをインストールしてあげて

easy_installの時と同じようにパスを通したり,先頭行の設定を修正してあげれば

純粋なhomebrew環境のpythonが動くようになります.

easy_install pip




試しに便利そうな/使いそうなサードパーティ製ツールをインストールしました.

(ちなみにpygameについては以前の記事を参照してください)

pip install mercurial
pip install pep8
pip install pyflakes
pip install virtualenv
pip install virtualenvwrapper 

pip install PIL
easy_install pygame
pip install MySQL-python
pip install pymysql


pip install numpys

ただ相変わらずmatplotlibが正攻法でインストールできなかった...

しょうがないのでソースからインストール

アンインストールする時とかどうしたらいいのやら...手作業ですか)

git clone https://github.com/matplotlib/matplotlib.git
cd matplotlib
python setup.py build
python setup.py install

あとはこれにあわせて EclipseのPydevの環境設定を変更しないとなー









(余談)

matplotlibをpipでインストールしようとするとどうも下記のようなエラーがでました.

原因はhomebrewで入っているTkinterっぽいです.

詳しくは調べてないですが...同じような現象に見舞われた方はソースコンパイル等で対応すると早いです.

Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/Users/nullhacker/build/matplotlib/setup.py", line 162, in <module>

    if check_for_tk() or (options['build_tkagg'] is True):

  File "setupext.py", line 832, in check_for_tk

    (Tkinter.__version__.split()[-2], Tkinter.TkVersion, Tkinter.TclVersion))

IndexError: list index out of range
トラックバック - http://d.hatena.ne.jp/nullhacker/20120103/1325560374
リンク元