新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2010-02-21

[Python]TurboGearsでtb-adminユーティリティがコケた - egg篇

奮闘篇より続く

そういえばeggってなんだ?


さっきからgoogle先生に教えを請うているうちに、ちょくちょく見かける「egg」の文字。なんぞこれ?と先生に聞いてみると、Javaで云うところのjarに相当するらしい。そんでもって、PyPIというレポジトリにいろんなeggが溜め込まれているそう。「ぱいぱい」って名前もすごいけど、これ要するにPerlでいうところのCPANじゃないですか。ほほー。

足りないものはeggで入れればいいじゃない


さらに先生が言うには、「汝、eazy_installでウハウハじゃぞ。」らしい。
なんでも、さっきのsetuptoolsをインストールする事でeazy_installというユーティリティを使えるようになったそうで、これを使えばeggをインストールできまっせ。ということらしい。
ようし。早速試すぞ。

yt@nephos:~/turbogears$ sudo easy_install SQLObject
Searching for SQLObject
Reading http://pypi.python.org/simple/SQLObject/
Reading http://sqlobject.org
Reading http://sqlobject.org/
Reading http://sqlobject.org/devel/
Best match: SQLObject 0.12.1
Downloading http://pypi.python.org/packages/2.6/S/SQLObject/SQLObject-0.12.1-py2.6.egg#md5=f475d31ecccd959d0769121422d9ce44
Processing SQLObject-0.12.1-py2.6.egg
creating /usr/local/lib/python2.6/dist-packages/SQLObject-0.12.1-py2.6.egg
Extracting SQLObject-0.12.1-py2.6.egg to /usr/local/lib/python2.6/dist-packages
Adding SQLObject 0.12.1 to easy-install.pth file
Installing sqlobject-admin script to /usr/local/bin

Installed /usr/local/lib/python2.6/dist-packages/SQLObject-0.12.1-py2.6.egg
Processing dependencies for SQLObject
Finished processing dependencies for SQLObject

おお!なんかうまくいったみたいだ!

ちなみに奮闘篇で不足っぽかったshaとmd5は、もともとpython2.6以前で利用されているパッケージらしく、2.6以降からはhashlibというパッケージで賄っているそうな。そんなら、これでどうさね。

yt@nephos:~/turbogears$ sudo easy_install hashlib
Searching for hashlib
Reading http://pypi.python.org/simple/hashlib/
Reading http://code.krypto.org/python/hashlib/
Best match: hashlib 20081119
Downloading http://code.krypto.org/python/hashlib/hashlib-20081119.zip
Processing hashlib-20081119.zip
Running hashlib-20081119/setup.py -q bdist_egg --dist-dir /tmp/easy_install-SjZ1h2/hashlib-20081119/egg-dist-tmp-y36dU0
no previously-included directories found matching 'build'
no previously-included directories found matching 'dist'
no previously-included directories found matching 'RCS'
no previously-included directories found matching 'CVS'
no previously-included directories found matching '.svn'
Modules/shamodule.c:18:20: error: Python.h: No such file or directory
Modules/shamodule.c:19:26: error: structmember.h: No such file or directory
Modules/shamodule.c:47: error: expected specifier-qualifier-list before ‘PyObject_HEAD’
Modules/shamodule.c:58: error: expected ‘)’ before ‘*’ token
Modules/shamodule.c: In function ‘SHAcopy’:
Modules/shamodule.c:76: error: ‘SHAobject’ has no member named ‘Endianness’
  :
  :
 中 略
  :
  :
error: Setup script exited with error: command 'gcc' failed with exit status 1


あら。ダメか。どうやらPython.hが無いのが原因ぽい。
んじゃあ、python-dev入れれば解決のはず。


$ sudo aptitude insatall python-dev

として、


$ sudo easy_install hashlib
Searching for hashlib
Reading http://pypi.python.org/simple/hashlib/
Reading http://code.krypto.org/python/hashlib/
Best match: hashlib 20081119
Downloading http://code.krypto.org/python/hashlib/hashlib-20081119.zip
Processing hashlib-20081119.zip
Running hashlib-20081119/setup.py -q bdist_egg --dist-dir /tmp/easy_install-8sT2Do/hashlib-20081119/egg-dist-tmp-2P55fs
no previously-included directories found matching 'build'
no previously-included directories found matching 'dist'
no previously-included directories found matching 'RCS'
no previously-included directories found matching 'CVS'
no previously-included directories found matching '.svn'
zip_safe flag not set; analyzing archive contents...
Adding hashlib 20081119 to easy-install.pth file

Installed /usr/local/lib/python2.6/dist-packages/hashlib-20081119-py2.6-linux-x86_64.egg
Processing dependencies for hashlib
Finished processing dependencies for hashlib


よしキター!!!

苦悩篇へ続く

0 件のコメント: