很难用 cython 路径编译 pyx pxd 文件的工作版本
Difficulty with cython paths to compile working version of pyx pxd files
我在 cython 中得到了 3 个文件,代表 2 个 classes:
1. ../src/cython/class1.pyx
2. ../src/cython/class1.pxd
3. ../src/cython/class2.pyx
我想将 class1
中定义的 class 导入到 class2
中,以便能够将 cython 类型用于自定义 class。
在class2
里面,如果我像这样导入Class1
,我无法编译:
from src.cython.class1 cimport Class1
在 class2
中,如果我像下面这样导入 Class1
,我可以编译,但在执行时出现错误 No module named 'src.cython.class1'
:
from class1 cimport Class1
我是 运行 setup.py
来自 ../
此问题被标记为可能与一个非常不同的问题重复。我收到这些错误只是因为我错过了 cython
文件夹中的 __init__.py
。
目录结构应该是这样的:
../src/cython/class1.pyx
../src/cython/__init__.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',
<..>,
),
]
'no module'错误是因为目录名与扩展名不匹配,另外目录需要定义为包。
__init__.pxd
等同于 __init__.py
for cimport
.
我在 cython 中得到了 3 个文件,代表 2 个 classes:
1. ../src/cython/class1.pyx
2. ../src/cython/class1.pxd
3. ../src/cython/class2.pyx
我想将 class1
中定义的 class 导入到 class2
中,以便能够将 cython 类型用于自定义 class。
在class2
里面,如果我像这样导入Class1
,我无法编译:
from src.cython.class1 cimport Class1
在 class2
中,如果我像下面这样导入 Class1
,我可以编译,但在执行时出现错误 No module named 'src.cython.class1'
:
from class1 cimport Class1
我是 运行 setup.py
来自 ../
此问题被标记为可能与一个非常不同的问题重复。我收到这些错误只是因为我错过了 cython
文件夹中的 __init__.py
。
目录结构应该是这样的:
../src/cython/class1.pyx
../src/cython/__init__.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',
<..>,
),
]
'no module'错误是因为目录名与扩展名不匹配,另外目录需要定义为包。
__init__.pxd
等同于 __init__.py
for cimport
.