如何将C++ Python扩展导入到另一个目录的模块中?
这是文件夹的结构:
app/
__init__.py
sub1/
__init__.py
mod1.py
sub2/
__init__.py
sub2.so
test_sub2.py
- 文件夹 app 在我的 PYTHONPATH 里。
- 所有的 __init__.py 文件都是空的。
- 共享库 sub2.so 是我用 cmake 和 boost-python 编译的 C++ 扩展模块。
- test_sub2.py 是一个测试脚本,用来测试 sub2.so 里定义的类。
- 如果我从 sub2 文件夹运行 test_sub2.py,它能正确导入模块,测试也通过了。
我该如何在 mod1.py 中导入 sub2.so 里的类 A 呢?
3 个回答
0
使用相对导入:
from ..sub2.sub2 import A
这就像是一个相对路径 "../sub2/sub2.so"。
0
试试在你的 mod1.py 文件里写
import .app.sub2.sub2
。
2
导入这个模块的方法是从任何源文件中导入 app.sub2.sub2
。你的测试代码应该放在 app
之外,然后通过这个模块路径来访问扩展模块。