我正在冒险尝试使用pybindgen为Python创建C / C ++绑定。我按照“构建它(GCC说明)”中概述的步骤创建了示例文件的绑定:
http://packages.python.org/PyBindGen/tutorial.html#a-simple-example
运行make
会生成一个.so文件。如果我理解.so文件是如何工作的,我应该能够将共享对象中的类import
转换为Python。但是,我不确定将文件放在何处以及如何让Python知道它在哪里。另外,原始的c / c ++源文件是否需要附带.so文件?
到目前为止,我已尝试将该文件放在/ usr / local / lib中,并将该路径添加到.bash_profile的DYLD_LIBRARY_PATH。当我尝试从Python interpeter中导入模块时,会抛出一个错误,指出无法找到该模块。
所以,我的问题是:生成的.so文件需要做些什么才能被Python程序使用?
答案 0 :(得分:3)
Python在搜索python的目录中查找.so
个模块。所以你必须像普通的python模块一样安装它,默认情况下是python的sys.path
上的某个地方(/usr/share/python/site-lib
或类似的东西 - 它依赖于分发)或者将目录添加到{{ 1}}环境变量。
使用dlopen加载模块的python,而不是动态链接器,所以PYTHONPATH
(注意,没有LD_LIBRARY_PATH
)对你没用。
答案 1 :(得分:0)
与所有其他Python模块相同。它必须位于sys.path
中的其中一个位置。