似乎编译一个__init__.pyx包含cimport语句的bug是错误的.
这是我的文件夹结构:
DrawAPI\
__init__.pyx
utils.pxd
Run Code Online (Sandbox Code Playgroud)
的__init__.pyx:
cimport utils
Run Code Online (Sandbox Code Playgroud)
编译__init__.pyxwith cython让我utils.pxd无法找到.但是重命名__init__.pyx为任何其他名称,foo.pyx例如
DrawAPI\
foo.pyx
utils.pxd
Run Code Online (Sandbox Code Playgroud)
然后编译foo.pyx工作就好了.
难道我做错了什么 ?
如果目录包含__init__.py或__init__.pyx文件,则假定它是包目录.因此在您的示例中,假设utils模块属于包DrawAPI,其FQMN是DrawAPI.utils
但是,如果DrawAPI您正在运行编译器的当前目录,并且您没有将DrawAPI添加到包含路径,utils.pxd则无法找到(正如您发现的那样......)
如果您打算将utils作为顶级模块,那么您将不得不将其移动到没有__init__.pyx文件的其他地方.
如果你打算将它驻留在一个包中,那么cd到包含DrawAPI并从那里编译的目录.
| 归档时间: |
|
| 查看次数: |
1564 次 |
| 最近记录: |