我想将 Python 3.11.4 升级到 3.11.5,但我的相同 .pyd 扩展名无法像以前一样编译。相同的代码在3.11.4版本中没有问题,所以我再次重新安装了3.11.4,但该类型的所有声明中仍然存在问题:
i:Py_ssize_t=0
Unknown type declaration 'Py_ssize_t' in annotation, ignoring
Py_ssize_t 是 Cython 的一部分。发生什么事了?
我认为这更有可能与 Cython 版本的变化有关,而不是与 Python 版本的变化有关。
特别是对于
Py_ssize_t
作为注释,Cython 希望您将其用作来自 Cython 的名称 cimport
,而不是原始名称:
cimport cython
#...
i: cython.Py_ssize_t=0
我怀疑这只是添加的警告的输出,而不是底层行为,但我可能是错的 - Cython 3 中注释的处理发生了相当重大的变化。