【发布时间】:2012-09-10 09:05:17
【问题描述】:
我正在用 C 语言编写一个 python 模块。 该模块需要针对python 2.4、2.5、2.6和2.7版本进行编译。
现在我遇到了一个问题,在 python 2.5 中他们为列表的大小定义了Py_ssize_t,但在 2.4 中他们只使用了int。
所以我的问题是: 有没有一种简单的方法可以检查我在编译时使用的是 2.4 版还是 2.5 版的 API,以便我可以编写一个小宏?
例如:
#if PY_MINOR < 5
typedef int Py_ssize_t;
#endif
【问题讨论】:
-
另见docs.python.org/3/howto/…,其中包含一个使用 ifdefs 可在 Python 2 和 Python 3 上工作的示例。