标题几乎可以解释一切。在
我正试图用
cimport myMinExPkg.someModule.base as someModuleBase
然后使用“someModuleBase”别名
^{pr2}$但这会导致错误
myMinExPkg/someModule/baseExt.pxd:7:5: 'someModuleBase.pxd' not found
我不知道为什么Cython要找这个pxd文件。如果我将别名重命名为与它工作的文件相同的名称,例如
cimport myMinExPkg.someModule.base as base
或者只是
cimport myMinExPkg.someModule.base
并恰当地使用它们。但这当然不是重点,在我看来,这两种方法都应该奏效。 我尝试过搜索SO和google,但只找到了一些我认为我没有犯的明显错误的解决方案。在
----------------------------->----------------------------
附加信息:
我的文件夹结构如下所示
├── myMinExPkg
│ ├── __init__.py
│ └── someModule
│ ├── base.c
│ ├── baseExt.c
│ ├── baseExt.pxd
│ ├── baseExt.pyx
│ ├── base.pxd
│ ├── base.pyx
│ ├── __init__.py
├── setup.py
在设置.py文件
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
from Cython.Build import cythonize
ecadef = ["-O1", "-Wunused-but-set-variable"]
iddef = ["/usr/local/include/", "./myMinExPkg","/usr/local/lib/"]
extensions = cythonize([
Extension('myMinExPkg.someModule.base',
sources=['myMinExPkg/someModule/base.pyx'],
extra_compile_args = ecadef,
include_dirs = iddef
),
Extension('myMinExPkg.someModule.baseExt',
sources=['myMinExPkg/someModule/baseExt.pyx'],
extra_compile_args = ecadef,
include_dirs = iddef
)
])
setup(name = 'myMinExPkg',
packages = ['myMinExPkg', 'myMinExPkg.someModule'],
package_data={'myMinExPkg': ['*.pxd'],
'myMinExPkg.someModule': ['*.pxd']},
cmdclass = {'build_ext': build_ext},
ext_modules = extensions
)
目前没有回答
相关问题 更多 >
编程相关推荐