Python:distutils
Python distutils module
Find Python libraries
- Stackoverflow - Cmake is not able to find Python-libraries
- Stackoverflow - Make distutils look for numpy header files in the correct place
from distutils.sysconfig import get_python_inc
print(get_python_inc())
import distutils.sysconfig as sysconfig
print(sysconfig.get_config_var('LIBDIR'))
print(sysconfig.get_config_var('LDLIBRARY'))
# Library path:
import os
print(os.path.join(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')))
## NumPy
import numpy as np
np.get_include()
스크립트와 통합하고 싶을 경우 아래와 같이 사용할 수 있다.
참고로, 버전정보는 아래와 같다.
Remove debug symbol
from distutils import sysconfig
from distutils.core import setup
import platform
if platform.system() != 'Windows': # When compilinig con visual no -g is added to params
cflags = sysconfig.get_config_var('CFLAGS')
opt = sysconfig.get_config_var('OPT')
sysconfig._config_vars['CFLAGS'] = cflags.replace(' -g ', ' ')
sysconfig._config_vars['OPT'] = opt.replace(' -g ', ' ')
if platform.system() == 'Linux': # In macos there seems not to be -g in LDSHARED
ldshared = sysconfig.get_config_var('LDSHARED')
sysconfig._config_vars['LDSHARED'] = ldshared.replace(' -g ', ' ')
setup(...)
Add CFLAGS
from distutils import sysconfig
from distutils.core import setup
cflags = sysconfig.get_config_var('CFLAGS')
cflags += ' -march=native '
sysconfig._config_vars['CFLAGS'] = cflags
setup(...)
base directory
>>> import sysconfig
>>> sysconfig.get_config_var('base')
'/Users/your/.pyenv/versions/3.6.1/envs/opy-your-3.6.1'
Using sysconfig as a script
You can use sysconfig as a script with Python’s -m
option:
$ python -m sysconfig
Platform: "macosx-10.4-i386"
Python version: "3.2"
Current installation scheme: "posix_prefix"
Paths:
data = "/usr/local"
include = "/Users/tarek/Dev/svn.python.org/py3k/Include"
platinclude = "."
platlib = "/usr/local/lib/python3.2/site-packages"
platstdlib = "/usr/local/lib/python3.2"
purelib = "/usr/local/lib/python3.2/site-packages"
scripts = "/usr/local/bin"
stdlib = "/usr/local/lib/python3.2"
Variables:
AC_APPLE_UNIVERSAL_BUILD = "0"
AIX_GENUINE_CPLUSPLUS = "0"
AR = "ar"
ARFLAGS = "rc"
...