我们知道PyObject_AsReadBuffer在version2.5中已更改。

在v2.4上,我们可以像这样使用它,

int bufferLength = 0;
const void* buffer = NULL;
PyObject_AsReadBuffer(pyObj, &buffer, &buffer_len);


但是我必须像这样修改它才能在v2.7上运行,

Py_ssize_t bufferLength = 0;
const void* buffer = NULL;
PyObject_AsReadBuffer(pyObj, &buffer, &buffer_len);


如果我想同时在v2.4和v2.7上运行它,该怎么办?

最佳答案

在include / python2.7 / patchlevel.h中

#define PY_MAJOR_VERSION        2
#define PY_MINOR_VERSION        7


因此我们可以使用PY_MAJOR_VERSION PY_MINOR_VERSION来比较版本

关于python - PyObject_AsReadBuffer移植问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22035780/

10-13 06:40