Python 3.1 Headers Directory Mismatch

Michael Dickens michaelld at
Thu Jul 25 08:39:47 PDT 2013

I do not use Python 3.1, but the builtbot caught this issue so I'm
passing it on.

According to the python-1.0 PortGroup, for Python >= 3.0, the
${python.include} default value should be
"${python.prefix}/include/python${python.branch}m" -- note the trailing
little "m"; BUT: if "${python.prefix}/include/python${python.branch}"
exists then it is used.

Python 3.2 and 3.3 install headers into the "m" directory as expected.
Python 3.1, on the other hand, installs headers (from binary or source;
for 10.8 64-bit) into the non-"m" directory (against what the PortGroup

If I install py31-sip from binary, the header is installed as:
which goes against what the PortGroup says (because python31 installed
headers into ".../include/python3.1/").

If I compile py31-sip from source locally, the header is installed
correctly (per PortGroup, because python31 installed headers into
".../include/python3.1/") as:

I'm wondering if anyone knows what's going on?  I don't exactly care,
since I know of nobody who actually uses Python 3.1 any longer.  I look
at this issue from the MacPorts perspective: If MacPorts offers Python
3.1, then it should reasonably support packages that can be built and
used with Python 3.1.


More information about the macports-dev mailing list