おねずみ三千世界

これより西方、十万億もの仏国土を過ぎて、世界があるが、それを名づけて極楽という。

sitecustomize置いてるのに反応しない!という人の為のメモ。

pythonでvirtualenvで直下のlibにsitecustomize置いてるのに反応しない! Why?! という人の為に送るズッコケメモです。
こういう初歩的なのに引っ掛かり易くてどこにも対処法が書いてないことに、自戒の意味を込めてメモしていくのがこのブログの役割なのです。

私の場合は、「何だか色々モジュールを入れていたら、/usr/lib/python 直下に sitecustomize.py が置かれていたから」というのが原因でした。犯人はどいつだ!
sitecustomizeはsite-packagesの下に置け!ということになっているのに!*1

エラーも出ず、sitecustomize.py 自体は読んでいるっぽいので、不思議に思って調べてみたら、

>>> import sitecustomize
>>> sitecustomize.__file__
'/usr/lib/python2.6/sitecustomize.py'

すごいとこの読んでるw

>>> import sys
>>> sys.path
['', '/foo/bar/practice/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg', '/foo/bar/practice/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg', '/foo/bar/practice/lib/python2.6', '/foo/bar/practice/lib/python2.6/plat-linux2', '/foo/bar/practice/lib/python2.6/lib-tk', '/foo/bar/practice/lib/python2.6/lib-old', '/foo/bar/practice/lib/python2.6/lib-dynload', '/usr/lib/python2.6', '/usr/lib64/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib64/python2.6/lib-tk', '/foo/bar/practice/lib/python2.6/site-packages']

pathに/usr/lib/python2.6/site-packagesは通ってないので本来なら問題無いハズだったんです。
というわけで、/usr/lib/python2.6直下のsitecustomize.pyをリネームして
virtualenv下のものが読み込まれるようにしました。

*1:案外犯人は自分だったりして?(^_^;