Use new sysconfig module with Python 2.7 or >=3.2.

parent 0dfd7768
...@@ -9,6 +9,7 @@ CHANGES ...@@ -9,6 +9,7 @@ CHANGES
* Rename DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT environment * Rename DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT environment
variable to SETUPTOOLS_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT. variable to SETUPTOOLS_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT.
* Issue #1: Disable installation of Windows-specific files on non-Windows systems. * Issue #1: Disable installation of Windows-specific files on non-Windows systems.
* Use new sysconfig module with Python 2.7 or >=3.2.
----- -----
0.7.2 0.7.2
......
...@@ -245,9 +245,10 @@ def get_build_platform(): ...@@ -245,9 +245,10 @@ def get_build_platform():
needs some hacks for Linux and Mac OS X. needs some hacks for Linux and Mac OS X.
""" """
try: try:
from distutils.util import get_platform # Python 2.7 or >=3.2
except ImportError:
from sysconfig import get_platform from sysconfig import get_platform
except ImportError:
from distutils.util import get_platform
plat = get_platform() plat = get_platform()
if sys.platform == "darwin" and not plat.startswith('macosx-'): if sys.platform == "darwin" and not plat.startswith('macosx-'):
......
...@@ -7,10 +7,14 @@ import sys, os, marshal ...@@ -7,10 +7,14 @@ import sys, os, marshal
from setuptools import Command from setuptools import Command
from distutils.dir_util import remove_tree, mkpath from distutils.dir_util import remove_tree, mkpath
try: try:
from distutils.sysconfig import get_python_version, get_python_lib # Python 2.7 or >=3.2
from sysconfig import get_path, get_python_version
def _get_purelib():
return get_path("purelib")
except ImportError: except ImportError:
from sysconfig import get_python_version from distutils.sysconfig import get_python_lib, get_python_version
from distutils.sysconfig import get_python_lib def _get_purelib():
return get_python_lib(False)
from distutils import log from distutils import log
from distutils.errors import DistutilsSetupError from distutils.errors import DistutilsSetupError
...@@ -130,7 +134,7 @@ class bdist_egg(Command): ...@@ -130,7 +134,7 @@ class bdist_egg(Command):
# Hack for packages that install data to install's --install-lib # Hack for packages that install data to install's --install-lib
self.get_finalized_command('install').install_lib = self.bdist_dir self.get_finalized_command('install').install_lib = self.bdist_dir
site_packages = os.path.normcase(os.path.realpath(get_python_lib())) site_packages = os.path.normcase(os.path.realpath(_get_purelib()))
old, self.distribution.data_files = self.distribution.data_files,[] old, self.distribution.data_files = self.distribution.data_files,[]
for item in old: for item in old:
......
...@@ -9,9 +9,15 @@ import os, sys ...@@ -9,9 +9,15 @@ import os, sys
from distutils.file_util import copy_file from distutils.file_util import copy_file
from setuptools.extension import Library from setuptools.extension import Library
from distutils.ccompiler import new_compiler from distutils.ccompiler import new_compiler
from distutils.sysconfig import customize_compiler, get_config_var from distutils.sysconfig import customize_compiler
get_config_var("LDSHARED") # make sure _config_vars is initialized try:
from distutils.sysconfig import _config_vars # Python 2.7 or >=3.2
from sysconfig import _CONFIG_VARS
except ImportError:
from distutils.sysconfig import get_config_var
get_config_var("LDSHARED") # make sure _config_vars is initialized
del get_config_var
from distutils.sysconfig import _config_vars as _CONFIG_VARS
from distutils import log from distutils import log
from distutils.errors import * from distutils.errors import *
...@@ -131,16 +137,16 @@ class build_ext(_build_ext): ...@@ -131,16 +137,16 @@ class build_ext(_build_ext):
compiler=self.compiler, dry_run=self.dry_run, force=self.force compiler=self.compiler, dry_run=self.dry_run, force=self.force
) )
if sys.platform == "darwin": if sys.platform == "darwin":
tmp = _config_vars.copy() tmp = _CONFIG_VARS.copy()
try: try:
# XXX Help! I don't have any idea whether these are right... # XXX Help! I don't have any idea whether these are right...
_config_vars['LDSHARED'] = "gcc -Wl,-x -dynamiclib -undefined dynamic_lookup" _CONFIG_VARS['LDSHARED'] = "gcc -Wl,-x -dynamiclib -undefined dynamic_lookup"
_config_vars['CCSHARED'] = " -dynamiclib" _CONFIG_VARS['CCSHARED'] = " -dynamiclib"
_config_vars['SO'] = ".dylib" _CONFIG_VARS['SO'] = ".dylib"
customize_compiler(compiler) customize_compiler(compiler)
finally: finally:
_config_vars.clear() _CONFIG_VARS.clear()
_config_vars.update(tmp) _CONFIG_VARS.update(tmp)
else: else:
customize_compiler(compiler) customize_compiler(compiler)
......
...@@ -25,9 +25,22 @@ import pkg_resources ...@@ -25,9 +25,22 @@ import pkg_resources
from setuptools import Command, _dont_write_bytecode from setuptools import Command, _dont_write_bytecode
from setuptools.sandbox import run_setup from setuptools.sandbox import run_setup
from distutils import log, dir_util from distutils import log, dir_util
try:
# Python 2.7 or >=3.2
from sysconfig import get_config_vars, get_path
def _get_platlib():
return get_path("platlib")
def _get_purelib():
return get_path("purelib")
except ImportError:
from distutils.sysconfig import get_config_vars, get_python_lib
def _get_platlib():
return get_python_lib(True)
def _get_purelib():
return get_python_lib(False)
from distutils.util import get_platform from distutils.util import get_platform
from distutils.util import convert_path, subst_vars from distutils.util import convert_path, subst_vars
from distutils.sysconfig import get_python_lib, get_config_vars
from distutils.errors import DistutilsArgError, DistutilsOptionError, \ from distutils.errors import DistutilsArgError, DistutilsOptionError, \
DistutilsError, DistutilsPlatformError DistutilsError, DistutilsPlatformError
from distutils.command.install import INSTALL_SCHEMES, SCHEME_KEYS from distutils.command.install import INSTALL_SCHEMES, SCHEME_KEYS
...@@ -1398,8 +1411,7 @@ def get_site_dirs(): ...@@ -1398,8 +1411,7 @@ def get_site_dirs():
'Python', 'Python',
sys.version[:3], sys.version[:3],
'site-packages')) 'site-packages'))
for plat_specific in (0,1): for site_lib in (_get_purelib(), _get_platlib()):
site_lib = get_python_lib(plat_specific)
if site_lib not in sitedirs: sitedirs.append(site_lib) if site_lib not in sitedirs: sitedirs.append(site_lib)
if HAS_USER_SITE: if HAS_USER_SITE:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment