Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python cython路径很难编译pyx pxd文件的工作版本_Python_Cython_Setuptools - Fatal编程技术网

Python cython路径很难编译pyx pxd文件的工作版本

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,我

我在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
,我可以编译,但在执行时没有得到名为'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
    文件导入,而是从共享对象加载代码。