Pythonでヘッダーのinclude pathを取得する方法 ( How to print include path of Python FIles ? )

MakefilePythonのファイルパスを取得したいときなどがたまにあるだろう。 そんなときはsys.prefixのトリックが便利だ.

import sys
print(sys.prefix) #/usr/local/Cellar/python/2.7.xx/Frameworks/Python.framework/Versions/2.7 etc ...

MakefilePython のインクルードパス*1を取得するときは

PYTHON_PREFIX  = $(shell python -c "import sys; print(sys.prefix)")
PYTHON_VERSION = $(shell python -c "import sys;\
print '%d.%d' % (sys.version_info.major, sys.version_info.minor)")
PYTHON_INCL_PATH = ${PYTHON_PREFIX}/include/python${PYTHON_VERSION}

などとすると良いだろう

mcbiophys.hatenablog.com

mcbiophys.hatenablog.com

*1:The main collection of Python library modules is installed in the directory prefix/lib/pythonX.Y while the platform independent header files (all except pyconfig.h) are stored in prefix/include/pythonX.Y, where X.Y is the version number of Python, for example 3.2.