CPython – 编译dails,PyDateTime_FromTimestamp没有声明?

我正在写一个V8加载项将JavaScript对象转换为Python,反之亦然。 我能够转换各种types,但PyDateTime_FromTimestamp(这是指定为现有的cpython文档: https ://docs.python.org/2/c-api/datetime.html#c.PyDateTime_FromTimestamp)显然是未定义,导致编译失败。

../src/py_object_wrapper.cc:189:13: error: use of undeclared identifier 'PyDateTime_FromTimestamp' return PyDateTime_FromTimestamp(value->NumberValue());

有人知道发生了什么事?

既然你没有给我们足够的信息来debugging任何东西,我会大概猜测最可能的问题。

请注意,在链接到它的文档的顶部说:

各种date和时间对象由datetime模块提供。 在使用这些函数之前,头文件datetime.h必须包含在你的源文件中(注意Python.h不包括这个) ,必须调用PyDateTime_IMPORTmacros,通常作为模块初始化函数的一部分。 该macros将一个指向C结构的指针放入一个静态variablesPyDateTimeAPI ,该variables由以下macros使用。

如果你只是忘记macros,这将编译,但然后在运行时崩溃,因为PyDateTimeAPI将为NULL。

但是,如果你忘了#include datetime.h ,那会导致你正在看到的东西。

Interesting Posts