我编译了一堆.py文件,并将它们链接到一个.so文件中。
在mymod1中,我使用
from .mymod2 import method2
用于从其他文件导入方法,我使用它们,它可以正常工作。
当我使用python导入.so时,一切正常: main.py:
from mylib.mymod1 import method1
x = method1()
print(x)
这很有效,小菜一碟。
现在,我想从C程序中调用method1。我将带有以下代码的bridge.pyx添加到库中
from mymod1 import method1
cdef public void call_method():
method1()
我在main.c中这样使用它:
#include <Python.h>
#include "bridge.h"
int main(){
PyImport_AppendInittab("bridge",PyInit_bridge);
Py_Initialize();
PyImport_ImportModule("bridge");
call_method();
Py_Finalize();
return 0;
}
我得到以下信息:
Traceback (most recent call last):
File "pysrc/bridge.pyx",line 1,in init pysrc.bridge
ImportError: attempted relative import with no known parent package
Exception ignored in: 'pysrc.bridge.call_method'
Traceback (most recent call last):
File "pysrc/bridge.pyx",in init pysrc.bridge
ImportError: attempted relative import with no known parent package
我该如何克服这个问题?