C / Python扩展作为包

时间:2018-02-28 02:49:18

标签: python python-2.7 setuptools cpython

我正在构建一个具有以下层次结构的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.corefoopackage.const

0 个答案:

没有答案