Python cython路径很难编译pyx pxd文件的工作版本
我在cython中得到了3个代表2个类的文件:Python cython路径很难编译pyx pxd文件的工作版本,python,cython,setuptools,Python,Cython,Setuptools,我在cython中得到了3个代表2个类的文件: 1. ../src/cython/class1.pyx 2. ../src/cython/class1.pxd 3. ../src/cython/class2.pyx 我想将class1中定义的类导入class2以便能够对自定义类使用cython类型 在class2内部,如果我像这样导入Class1,我无法编译: from src.cython.class1 cimport Class1 在class2内部,如果我像下面这样导入Class1,我
1. ../src/cython/class1.pyx
2. ../src/cython/class1.pxd
3. ../src/cython/class2.pyx
我想将class1
中定义的类导入class2
以便能够对自定义类使用cython类型
在class2
内部,如果我像这样导入Class1
,我无法编译:
from src.cython.class1 cimport Class1
在class2
内部,如果我像下面这样导入Class1
,我可以编译,但在执行时没有得到名为'src.cython.Class1'的模块:
from class1 cimport Class1
我正在从运行setup.py
。/
这个问题被标记为可能与另一个完全不同的问题重复。我得到这些错误只是因为我错过了cython
文件夹中的\uu init\uuuuuuuuuupy
。目录结构应该是这样的:
。/src/cython/class1.pyx
。/src/cython/\uuuu init\uuuu.pxd
。/src/cython/class1.pxd
。/src/cython/class2.pyx
在class2.pyx中:
from class1 cimport Class1
setup.py应具有:
extensions = [Extension('my_package.cython.class1',
<..>
),
Extension('my_package.cython.class2',
<..>,
),
]
extensions=[Extension('my_package.cython.class1',
),
扩展名('my_package.cython.class2',
,
),
]
“无模块”错误是因为目录名与扩展名不匹配,以及需要定义为包的目录
\uuuu init\uuuu.pxd
相当于\uuuu init\uuuuuuuy.py
对于cimport
,我在这里绝对不是专家,但是你试过写完整的目录吗?@3141既然你提到了,我试过了,但没有成功,谢谢!只是检查的可能重复,但您是否在每个文件夹级别(在您的src
和cython
文件夹中)都有\uuu init\uu uuuuuuuuuuuy.py
文件?1。您的目录结构是什么(特别是哪些目录是包)?2.分机名是什么?源代码是不相关的,因为您在运行时不是从pyx
文件导入,而是从共享对象加载代码。