How can I check the version of the python API at compile time?

I am writing a python module in C. The module needs to be compiled for python version 2.4, 2.5, 2.6 and 2.7.

Now I ran in to the problem that in python 2.5 they defined Py_ssize_t for the size of lists, but in 2.4 they just used int.

So my question is: Is there an easy way to check if I'm using the API of version 2.4 or 2.5 at compile time so I can write a little macro?

e.g:

#if PY_MINOR < 5
typedef int Py_ssize_t;
#endif

Answers


Yes, patchlevel.h in the Python include dir defines what you are looking for:

#define PY_MAJOR_VERSION    2
#define PY_MINOR_VERSION    5
#define PY_MICRO_VERSION    2

I think what you need is PY_VERSION_HEX

there is one line in c code generated by cython

PY_VERSION_HEX < 0x02040000

#ifndef Py_PYTHON_H
  #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02040000
  #error Cython requires Python 2.4+.
#else

Need Your Help

Changing date format on php link cakephp

cakephp date format

The following code is the output into a table where I have a list of dates which are also hyperlinks to an event on that date. It currently displays YMD and I would like it to display DMY.

JavaScript error: 'moment' is undefined in Full Calendar Jquery plugin

jquery asp.net-mvc-5 fullcalendar

I am using JQuery FullCalendar control in my ASP.Net MVC 5 application. I have followed the steps exactly as given in this tutorial

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.