def get_lib_dirs(self): # https://github.com/sametmax/devpy/blob/66a150817644edf825d19b80f644e7d05b2a3e86/src/devpy/tb.py#L10 # https://stackoverflow.com/questions/122327/how-do-i-find-the-location-of-my-python-site-packages-directory/122340 lib_dirs = [ sysconfig.get_path('stdlib'), site.USER_SITE, distutils.sysconfig.get_python_lib() ] if hasattr(sys, 'real_prefix'): lib_dirs.append(sys.prefix) lib_dirs.append( sysconfig.get_path('stdlib').replace(sys.prefix, sys.real_prefix)) if hasattr(sys, 'getsitepackages'): lib_dirs += site.getsitepackages() return [os.path.abspath(d) for d in lib_dirs]
def _get_lib_dirs(): # https://git.io/fh5wm # https://stackoverflow.com/q/122327/2291710 lib_dirs = [] stdlib_path = sysconfig.get_path("stdlib") if stdlib_path is not None: lib_dirs.append(stdlib_path) if site.USER_SITE is not None: lib_dirs.append(site.USER_SITE) if hasattr(site, "getsitepackages"): site_packages = site.getsitepackages() lib_dirs.extend(site_packages) if hasattr(sys, "real_prefix"): lib_dirs.append(sys.real_prefix) if stdlib_path is not None: sys_prefix = stdlib_path.replace(sys.prefix, sys.real_prefix) lib_dirs.append(sys_prefix) try: python_lib = distutils.sysconfig.get_python_lib() except distutils.errors.DistutilsError: pass else: lib_dirs.append(python_lib) return [os.path.abspath(d) + os.sep for d in lib_dirs]
def _get_lib_dirs(): # https://git.io/fh5wm # https://stackoverflow.com/q/122327/2291710 lib_dirs = [ sysconfig.get_path("stdlib"), site.USER_SITE, distutils.sysconfig.get_python_lib(), ] try: real_prefix = sys.real_prefix except AttributeError: pass else: lib_dirs.append(sys.prefix) lib_dirs.append(sysconfig.get_path("stdlib").replace(sys.prefix, real_prefix)) try: lib_dirs += site.getsitepackages() except AttributeError: pass return [os.path.abspath(d) + os.sep for d in lib_dirs]
def execute_get_path(library_id, scheme=None, platbase_value=None, expand=True): # print("(execute_get_path) library_id=%s, scheme=%s, platbase_value=%s, expand=%s" % (library_id, scheme, platbase_value, expand)) funcdesc = "sysconfig.get_path()" if scheme: schemedesc = "scheme=%s" % scheme else: schemedesc = "scheme=<default>" if expand: if platbase_value: argdesc = "platbase=%s" % platbase_value else: argdesc = "platbase=<default>" else: argdesc = "expand=False" if scheme: if expand: if platbase_value: libname = sysconfig.get_path(library_id, scheme, vars={'platbase': platbase_value}) else: libname = sysconfig.get_path(library_id, scheme) else: libname = sysconfig.get_path(library_id, scheme, expand=False) else: if expand: if platbase_value: libname = sysconfig.get_path(library_id, vars={'platbase': platbase_value}) else: libname = sysconfig.get_path(library_id) else: libname = sysconfig.get_path(library_id, expand=False) return (libname, funcdesc, schemedesc, argdesc)
def get_python_include_dir(python_version): """Get include directory associated with the current python interpreter.""" # determine python include dir python_include_dir = sysconfig.get_config_var('INCLUDEPY') # if Python.h not found (or python_include_dir is None), try to find a # suitable include dir found_python_h = (python_include_dir is not None or os.path.exists( os.path.join(python_include_dir, 'Python.h'))) if not found_python_h: # NOTE(opadron): these possible prefixes must be guarded against # AttributeErrors and KeyErrors because they each can throw on # different platforms or even different builds on the same platform. include_py = sysconfig.get_config_var('INCLUDEPY') include_dir = sysconfig.get_config_var('INCLUDEDIR') include = None plat_include = None python_inc = None python_inc2 = None try: include = sysconfig.get_path('include') except (AttributeError, KeyError): pass try: plat_include = sysconfig.get_path('platinclude') except (AttributeError, KeyError): pass try: python_inc = sysconfig.get_python_inc() except AttributeError: pass if include_py is not None: include_py = os.path.dirname(include_py) if include is not None: include = os.path.dirname(include) if plat_include is not None: plat_include = os.path.dirname(plat_include) if python_inc is not None: python_inc2 = os.path.join( python_inc, ".".join(map(str, sys.version_info[:2]))) candidate_prefixes = list( filter(bool, ( include_py, include_dir, include, plat_include, python_inc, python_inc2, ))) candidate_versions = (python_version, ) if python_version: candidate_versions += ('', ) candidates = (os.path.join(prefix, ''.join(('python', ver))) for (prefix, ver) in itertools.product( candidate_prefixes, candidate_versions)) for candidate in candidates: if os.path.exists(os.path.join(candidate, 'Python.h')): # we found an include directory python_include_dir = candidate break # TODO(opadron): what happens if we don't find an include directory? # Throw SKBuildError? return python_include_dir
elif opt == '--exec-prefix': try: print(sysconfig.EXEC_PREFIX) except: print(sysconfig.get_config_var('exec_prefix')) elif opt in ('--includes', '--cflags'): try: flags = [ '-I' + sysconfig.get_python_inc(), '-I' + sysconfig.get_python_inc(plat_specific=True) ] except: flags = [ '-I' + sysconfig.get_path('include'), '-I' + sysconfig.get_path('platinclude') ] try: import numpy flags += [ '-I' + numpy.get_include() + ' -DSMILEI_USE_NUMPY -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION' ] except: pass if opt == '--cflags': flags.extend(getvar('CFLAGS').split()) print(' '.join(flags))
funcdesc = "distutils.sysconfig.get_python_lib()" print(template % (funcdesc, schemedesc, argdesc, libname)) #--- print("") print("") print("Getting platform specific library:") template = " %-45s %-20s %-25s %s" for scheme in schemes: funcdesc = "sysconfig.get_path()" argdesc = "expand=False" counters = posix_prefix_counters if scheme == "posix_prefix" else non_posix_prefix_counters if scheme: libname = sysconfig.get_path('platlib', scheme, expand=False) schemedesc = "scheme=%s" % scheme else: libname = sysconfig.get_path('platlib', expand=False) schemedesc = "scheme=<default>" print(template % (funcdesc, schemedesc, argdesc, libname)) ndx = SITE_NDX if libname.endswith("site-packages") else DIST_NDX counters[ndx] += 1 fcounters = get_path_counters fcounters[ndx] += 1 if scheme: libname = sysconfig.get_path('platlib', scheme) schemedesc = "scheme=%s" % scheme else: libname = sysconfig.get_path('platlib')
print(sysconfig.PREFIX) except: print(sysconfig.get_config_var('prefix')) elif opt == '--exec-prefix': try: print(sysconfig.EXEC_PREFIX) except: print(sysconfig.get_config_var('exec_prefix')) elif opt in ('--includes', '--cflags'): try: flags = ['-I' + sysconfig.get_python_inc(), '-I' + sysconfig.get_python_inc(plat_specific=True)] except: flags = ['-I' + sysconfig.get_path('include'), '-I' + sysconfig.get_path('platinclude')] try: import numpy flags += ['-I' + numpy.get_include() + ' -DSMILEI_USE_NUMPY -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION'] except: pass if opt == '--cflags': flags.extend(getvar('CFLAGS').split()) print(' '.join(flags)) elif opt in ('--libs', '--ldflags'): try: libs = ['-lpython' + pyver + sys.abiflags]