我正在构建一个具有以下层次结构的python扩展
setup.py
foopackage/
__init__.py
core.c
const.py
bar.py
其中core.c是C / Python扩展。
setup.py定义扩展名如下:
ext_modules = [ Extension("foopackage.core",
glob("foopackage/*.c"),
language = "c",
extra_compile_args = ["-O0"],
)
]
核心中的我按如下方式定义init:
PyMODINIT_FUNC
initcore(void) {
PyObject *m;
m = Py_InitModule("core", core_methods);
if (m == NULL)
return;
}
假设python setup.py build
创建了一个包含以下层次结构的文件夹build/lib.linux-x86_64-2.7/foopackage
:
foopackage/
__init__.py
core.so
const.py
bar.py
当我在build / lib.linux-x86_64-2.7并且python
然后import foopackage.core
时,它工作正常,但是当我在其他地方并且PYTHONPATH=<full path to root>/build/lib.linux-x86_64-2.7 python
然后{{1}我收到以下错误:
import foopackage.core
我仍然可以在两种情况下导入ImportError: No module named foopackage.core
和foopackage.const