diff options
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/distutils/fcompiler/__init__.py | 5 | ||||
-rw-r--r-- | numpy/distutils/system_info.py | 6 | ||||
-rw-r--r-- | numpy/tests/test_ctypeslib.py | 4 |
3 files changed, 13 insertions, 2 deletions
diff --git a/numpy/distutils/fcompiler/__init__.py b/numpy/distutils/fcompiler/__init__.py index 397b36ce9..d2400459f 100644 --- a/numpy/distutils/fcompiler/__init__.py +++ b/numpy/distutils/fcompiler/__init__.py @@ -27,7 +27,7 @@ except NameError: from numpy.compat import open_latin1 -from distutils.sysconfig import get_config_var, get_python_lib +from distutils.sysconfig import get_config_var, get_config_vars, get_python_lib from distutils.fancy_getopt import FancyGetopt from distutils.errors import DistutilsModuleError, \ DistutilsExecError, CompileError, LinkError, DistutilsPlatformError @@ -196,6 +196,9 @@ class FCompiler(CCompiler): src_extensions = ['.for','.ftn','.f77','.f','.f90','.f95','.F','.F90'] obj_extension = ".o" shared_lib_extension = get_config_var('SO') # or .dll + # fix long extension for Python >=3.2, see PEP 3149. + if 'SOABI' in get_config_vars(): + shared_lib_extension = shared_lib_extension.replace('.'+get_config_var('SOABI'), '', 1) static_lib_extension = ".a" # or .lib static_lib_format = "lib%s%s" # or %s%s shared_lib_format = "%s%s" diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py index 7cc33eb43..7d1379981 100644 --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py @@ -211,6 +211,10 @@ default_include_dirs = filter(os.path.isdir, default_include_dirs) default_src_dirs = filter(os.path.isdir, default_src_dirs) so_ext = distutils.sysconfig.get_config_vars('SO')[0] or '' +# fix long extension for Python >=3.2, see PEP 3149. +if 'SOABI' in distutils.sysconfig.get_config_vars(): + so_ext = so_ext.replace('.'+distutils.sysconfig.get_config_var('SOABI'), '', 1) + def get_standard_file(fname): """Returns a list of files named 'fname' from @@ -1324,7 +1328,7 @@ class lapack_opt_info(system_info): or ('ATLAS_WITHOUT_LAPACK',None) in l: need_lapack = 1 info = atlas_info - + else: warnings.warn(AtlasNotFoundError.__doc__) need_blas = 1 diff --git a/numpy/tests/test_ctypeslib.py b/numpy/tests/test_ctypeslib.py index 832ce683c..78403df9e 100644 --- a/numpy/tests/test_ctypeslib.py +++ b/numpy/tests/test_ctypeslib.py @@ -31,6 +31,10 @@ class TestLoadLibrary(TestCase): try: from distutils import sysconfig so = sysconfig.get_config_var('SO') + # fix long extension for Python >=3.2, see PEP 3149. + if 'SOABI' in sysconfig.get_config_vars(): + so = so.replace('.'+sysconfig.get_config_var('SOABI'), '', 1) + cdll = load_library('multiarray%s' % so, np.core.multiarray.__file__) except ImportError: |