使用带有distutils的python ctypes时如何查找共享库的路径

时间:2015-04-11 20:56:40

标签: python ctypes distutils

我正在开发一个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)

0 个答案:

没有答案