I have a python modules written in C, it has a main module and a submodule(name with a dot, not sure this can be called real submodule):
PyMODINIT_FUNC initsysipc(void) {
PyObject *module = Py_InitModule3("sysipc", ...);
...
init_sysipc_light();
}
static PyTypeObject FooType = { ... };
PyMODINIT_FUNC init_sysipc_light(void) {
PyObject *module = Py_InitModule3("sysipc.light", ...);
...
PyType_Ready(&FooType);
PyModule_AddObject(module, "FooType", &FooType);
}
The module is compiled as sysipc.so
, and when I put it in current directory, following import works without problem:
import sysipc
import sysipc.light
from sysipc.light import FooType
The problem is I want to put this module inside a namespace package, the folder structure is like this:
company/
company/__init__.py
company/dept/
company/dept/__init__.py
company/dept/sys/
company/dept/sys/__init__.py
company/dept/sys/sysipc.so
all the three __init__.py
just includes the standard setuptool
import line:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
in current directory, following imports does not work:
from company.dept.sys import sysipc;
from company.dept.sys.sysipc.light import FooType;
How should I import the types and methods defined in module sysipc.light
in this case?
from python import path for sub modules if put in namespace package
No comments:
Post a Comment