我正在使用的文件夹结构是这样的:Python的 - 导入C++模块接口 - 无法打开共享对象文件
program
program/app/app.py
program/app/lib.so
program/app/py_interfaces.so
program/launcher.py
我编蟒蛇接口py_interaces.so
并带有Boost.Python链接到./lib.so
,所以它会加载库来自与接口相同的文件夹。 我输入接口在app.py
:
import py_interfaces
,如果我跑app.py
它工作正常。但是,我需要从launcher/py
运行,当我这样做,我得到错误:
Import Error: ./lib.so: cannot open shared object file: no such file or directory.
我猜它加载py_interfaces.so
罚款,但它搜索lib.so
在错误的文件夹:program
。是否有可能强制它正确地做到这一点?我应该链接不同吗?我不”要改变工作目录(我需要从根目录program
其他文件)
我给出了一般答案,但没有更多的代码,因为在你的'PYTHONPATH'和''py_interfaces'引用'lib'的代码中我没有更多的代码。 – kabanus
https://www.google.com/search?q=rpath+origin –