小编典典

Cython:ImportError:没有名为“ myModule”的模块:如何调用包含cimport的cython模块到另一个cython结节?

python

我正在尝试将cython模块data.pyx导入另一个cython模块user.pyx。一切编译正常,但是当我尝试在python模块中调用user.pyx时,出现错误“
ImportError:没有名为data的模块”。

一切都在同一目录中。

package/
    __init__.py   #empty
    setup.py      
    data.pxd
    data.pyx
    user.pyx

我的setup.py

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext


ext_modules = [
    Extension("data", ["data.pyx"]),
    Extension("user", ["user.pyx"],include_dirs = ['myPackageDir'])
    ]

setup(
  name = 'app',
  cmdclass = {'build_ext': build_ext},
  ext_modules = ext_modules  
)

运行以下test.py将引发错误。

import user     #this line raised the 'ImportError: No module named data' below
user.doSomething()

我得到的例外是

Traceback:
 File "test.py", line 1, in <module>
    import package.user
  File "user.pyx", line 1, in init user (user.c:3384)
ImportError: No module named data

如何进行导入?谢谢你的帮助。


阅读 213

收藏
2021-01-20

共1个答案

小编典典

我可能缺少有关Cython的一些信息,但我认为是:

import package.user
user.doSomething()
2021-01-20