共享对象文件的放置位置
Where Should Shared Object Files Be Placed?
我正在冒险使用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 交互器中导入模块时,会抛出一个错误,指出找不到该模块。
所以,我的问题是:需要对生成的.so文件做什么才能被Python程序使用?
Python 在
搜索 python 模块的同一目录中查找.so
模块。因此,您必须像安装普通python模块一样安装它,无论是默认情况下在python sys.path
上的某个地方(/usr/share/python/site-lib
或类似的东西 - 它将依赖于发行版),或者将目录添加到PYTHONPATH
环境变量。
是python使用dlopen加载模块,而不是动态链接器,所以LD_LIBRARY_PATH
(注意,没有DY
)不会帮助你。
与所有其他 Python 模块相同。它必须位于 sys.path
中给出的位置之一内。
相关文章:
- 如何在整数中找到最低有效位(LSB)的位置?c ++
- 如何在接触时重置我的角色位置?
- C++ - 重置字符串流不会重置获取位置或清除标志吗?
- с++:使用位位置的快速操作
- MATLAB API用于使用MatgetDir的C例外:Matrix :: Serialize ::在内存位置内置
- 有没有办法汇总数组的位位置
- 如何将X重置回阵列中的原始位置
- 如何获取设置位中的相对位置
- 获取设置故障位的流位置 / std::ios::抛出故障
- SDL2切换全屏:窗口位置重置
- SFML 碰撞检测,C++ -> 重置玩家位置
- 最佳的c++方式来随机选择设置位在位集中的位置
- 最快的函数将位置设置为一个无符号整数中两个位之间的位
- 二进制快速排序起始位位置
- 如何在无符号 N 位交互器中修复二进制点的位置
- 如何读取和重置字符位
- 垂直按位 COUNT(同一位置上的 1 之和)
- 将数据复制到指定的位位置
- 自动生成位位置
- 获取64位整数中位位置的数组