Python: December 2008 Archives

HDEラボの桜井です。
今年も残り半分ですね。
余談ですが、今年は台風が一度も上陸しなかった年だそうです。

で、ちょっと軽い小ネタをひとつ。

最近はもっぱらTwistedを使った開発が多いので、思い切ってRPM化しようと考えてまして。
そうしたらちょっとしたことでできてしまうんですね。
コツもあるので、簡単に説明します。

#もしPython業界で常識だったらすいません

Python 2.5から、ctypesというライブラリが標準ライブラリに追加されました。このライブラリは、Cの関数をPython用にラッピングしてくれるライブラリで、PythonからCのライブラリ(.soとか.aとか.dllとか、環境による)中の関数を「直接」呼び出すことができます。

似たような仕組みには、SWIGや、PythonのC拡張モジュールなどがありますが、ctypesはそれらの仕組みと比べ、圧倒的に手軽なのが売りです(だと思います)。

たとえば、Python 2.5以上であれば、インタラクティブモード上で、

>>> from ctypes import *
>>> libc = CDLL("libc.so.6")
>>> libc.puts("hello ctypes")
hello ctypes
13

のように、いきなりlibcのputs関数を呼び出すことができます(インタラクティブモードなので、戻り値の「13」が表示されています)。

About this Archive

This page is a archive of entries in the Python category from December 2008.

Python: November 2008 is the previous archive.

Python: January 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.