似乎编译包含cimport语句的__init__.pyx是错误的。
这是我的文件夹结构:
DrawAPI\
__init__.pyx
utils.pxdThe __init__.pyx
cimport utils使用cython编译__init__.pyx时,我发现找不到utils.pxd。但是将__init__.pyx重命名为任何其他名称,例如foo.pyx
DrawAPI\
foo.pyx
utils.pxd然后编译foo.pyx就可以正常工作了。
我做错了什么吗?
发布于 2011-08-27 10:11:25
如果目录包含__init__.py或__init__.pyx文件,则假定该目录为软件包目录。因此,在您的示例中,假设utils模块属于包DrawAPI,并且它的FQMN为DrawAPI.utils
但是,如果DrawAPI是运行编译器的当前目录,并且您没有将DrawAPI添加到包含路径中,则将找不到utils.pxd (如您所发现的……)
如果你想让util成为一个顶级模块,那么你必须把它移到没有__init__.pyx文件的地方。
如果您希望它驻留在一个包中,那么cd到包含DrawAPI的目录并从那里进行编译。
https://stackoverflow.com/questions/7049925
复制相似问题