我正在开发一个python包,它基本上是一个c-backend的python包装器。 c-backend通过ctypes称为python形式。
如果我给ctypes提供加载它的库的绝对路径,它工作正常。但是,如果通过distutils编译库,我不知道如何找到库的绝对路径。的setup.py? (该库由安装脚本成功构建。)
以下是setup.py
的重要摘要:
libreboundmodule = Extension('librebound',
sources = [ 'librebound/librebound.c' ],
)
setup(name='rebound',
...
ext_modules = [libreboundmodule])
以下是反弹模块__init__.py
的一部分。我怎样才能让ctypes知道我的图书馆的路径?
import ctypes
PATH = ???
librebound = ctypes.CDLL(PATH+"librebound.so", RTLD_GLOBAL)
修改
可以执行以下操作吗?
import ctypes
PATH = os.path.dirname(__file__)
librebound = ctypes.CDLL(PATH+"/../librebound.so", RTLD_GLOBAL)