OS X Python: can I explicitly set MACOSX_DEPLOYMENT_TARGET for extensions?

Andrew Jaffe a.h.jaffe at gmail.com
Mon Oct 19 07:20:45 EDT 2015


I use the python.org framework build of Python under recent versions of 
OS X (i.e., 10.11 El Capitan). I need to build some extensions that rely 
on recent versions of compilers (e.g., C++-11 features). However the 
python.org python is built to work on older systems as well, for 
backward compatibility.

Hence, it has the environment variable MACOSX_DEPLOYMENT_TARGET=10.6. 
This means that extensions are built by default with a toolchain that, I 
think, mimics gcc-4.2, in particular in terms of what stdlib it searches.

In the past, I have fixed this by installing more recent compilers with 
homebrew and explicitly setting CC, CXX, etc before installation.

However, I have tried just setting MACOSX_DEPLOYMENT_TARGET=10.11, and 
that seems to work. Is this safe? Are there any downsides? (I don't need 
to distribute these builds, just use them locally?)

Conversely, are there any upsides? Does a newer deployment target allow 
more recent compilers and/or higher optimizations?

-Andrew




More information about the Python-list mailing list