PATHに含める必要がありliba.so
ます。そうしないと、Python はどこを探すべきかわかりません。
次のコードを試してください。PATH からライブラリが見つかった場合はライブラリをロードします。そうでない場合は、ロード スクリプトのディレクトリからロードを試みます。
from ctypes import *
from ctypes.util import find_library
import os
if find_library('a'):
liba = CDLL(find_library('a'))
else:
# library is not in your path, try loading it from the current directory
print 'liba not found in system path, trying to load it from the current directory'
print '%s/%s'%(os.path.dirname(__file__),'liba.so')
liba = CDLL(os.path.join(os.path.dirname(__file__),'liba.so'))
http://docs.python.org/library/ctypes.html#finding-shared-libraries
更新:liba
ネイティブのサードパーティ ライブラリ ( ) にアクセスするためにネイティブ ライブラリ ( ) を作成した理由を知りたいと思っていましたlibb
。を使用して、サードパーティの c ライブラリを直接 python にインポートしctypes
、libb
. たとえば、標準の c lib を呼び出すには、次のtime
ようにします。
>>> from ctypes import *
>>> lib_c = CDLL("libc.so.6")
>>> print lib_c.time(None)
1150640792
そしてlibbの場合
>>> from ctypes import *
>>> lib_b = CDLL("libb")
>>> lib_b.hello_world(None)