我不明白如何让Cython从包含子模块的模块中正确构建单个.pyd
。
当前setup.py
给出了子模块的导入错误。
我在规则下面给出了设置,我将cythontest.pyd
和submod.pyd
移动到另一个文件夹并在那里启动解释器。不幸的是我收到了这个错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "__init__.py", line 1, in init cythontest (cythontest\__init__.c:981)
ImportError: No module named submod
这是我的代码:
cythontest/
__init__.py
submod/
__init__.py
### cythontest/__init__.py
import cythontest.submod
def test():
print("cythontest/__init__.py/test()")
cythontest.submod.test()
### cythontest/submod/__init__.py
def test():
print("cythontest/submod/__init__.py/test()")
### setup.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
setup(
name = 'cythontest',
cmdclass = {'build_ext': build_ext},
ext_modules = [
Extension("cythontest", sources=["cythontest\\__init__.py"])
, Extension("cythontest.submod", sources=["cythontest\\submod\\__init__.py"])
]
, include_dirs = ['.', 'cythontest']
, script_args = ['build_ext', '--inplace', '--compiler=mingw32']
)