为何Jupyter中正常运行的Cython代码在C阶段编译失败?
解决Cython融合类型在.pyx文件编译时报C2065错误的问题
问题场景
以下代码在Jupyter Notebook的%%cython单元格中可以正常运行:
ctypedef fused fused_type: long double cdef fused_checker(fused_type i): if fused_type is long: return True else: return False def test(): return fused_checker(0)
但将这段代码保存为.pyx文件后,在C编译阶段会触发C2065错误(未知标识符)。
问题原因与解决方法
经过排查,问题根源在于setup.py中配置了Cython.Compiler.Options.cimport_from_pyx = True。移除该配置项后,重新编译代码即可正常运行。
内容的提问来源于stack exchange,提问作者viscacha
相关产品推荐
相关产品推荐

