On Mon, Jun 20, 2011 at 2:43 PM, Ralf Gommers <ralf.gomm...@googlemail.com> wrote: > > > On Mon, Jun 20, 2011 at 8:50 PM, Bruce Southey <bsout...@gmail.com> wrote: >> >> I copied the files but that just moves the problem. So that patch is >> incorrect. >> >> I get the same errors on Fedora 15 supplied Python3.2 for numpy 1.6.0 and >> using git from 'https://github.com/rgommers/numpy.git'. Numpy is getting >> Fedora supplied Atlas (1.5.1 does not). >> >> It appears that there is a misunderstanding of the PEP because 'SO' and >> 'SOABI' do exactly what the PEP says on my systems: > > It doesn't on OS X. But that's not even the issue. As I explained before, > the issue is that get_config_var('SO') is used to determine the extension of > system libraries (such as liblapack.so) and python-related ones (such as > multiarray.cpython-32m.so). And the current functions don't do mindreading. >> >> >>> from distutils import sysconfig sysconfig.get_config_var('SO') >> '.cpython-32m.so' >> >>> sysconfig.get_config_var('SOABI') >> 'cpython-32m' >> >> Consequently, the name, 'multiarray.pyd', created within numpy is invalid. > > I removed the line in ctypeslib that was trying this, so I think you are not > testing my patch. > > Ralf > >> >> Looking the code, I see this line which makes no sense given that the >> second part is true under Linux: >> >> if (not is_python_ext) and 'SOABI' in >> distutils.sysconfig.get_config_vars(): >> >> So I think the 'get_shared_lib_extension' function is wrong and probably >> unneeded. >> >> >> Bruce >>
Just to show that this is the new version, I added two print statements in the 'get_shared_lib_extension' function: >>> from numpy.distutils.misc_util import get_shared_lib_extension >>> get_shared_lib_extension(True) first so_ext .cpython-32mu.so returned so_ext .cpython-32mu.so '.cpython-32mu.so' >>> get_shared_lib_extension(False) first so_ext .cpython-32mu.so returned so_ext .so '.so' The reason for the same location is obvious because all the patch does is move the code to get the extension into that function. So the 'get_shared_lib_extension' function returns the extension '.so' to the load_library function. However that name is wrong under Linux as it has to be 'multiarray.cpython-32mu.so' and hence the error in the same location. I did come across this thread 'http://bugs.python.org/issue10262' which indicates why Linux is different by default. So what is the actual name of the multiarray shared library with the Mac? If it is ' 'multiarray.so' then the correct name is "libname + sysconfig.get_config_var('SO')" as I previously indicated. Bruce $ python3 Python 3.2 (r32:88445, Feb 21 2011, 21:11:06) [GCC 4.6.0 20110212 (Red Hat 4.6.0-0.7)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy as np >>> np.test() Running unit tests for numpy NumPy version 2.0.0.dev-Unknown NumPy is installed in /usr/lib64/python3.2/site-packages/numpy Python version 3.2 (r32:88445, Feb 21 2011, 21:11:06) [GCC 4.6.0 20110212 (Red Hat 4.6.0-0.7)] nose version 1.0.0 first so_ext .cpython-32mu.so returned so_ext .so ...F.......S......F.....E..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................K............................................................................................................................................................................................K..................................................................................................K......................K...........................................................................................first so_ext .cpython-32mu.so returned so_ext .so ...............S..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................../usr/lib64/python3.2/site-packages/numpy/lib/format.py:575: ResourceWarning: unclosed file <_io.BufferedReader name='/tmp/tmpw661ug'> mode=mode, offset=offset) .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................../usr/lib64/python3.2/subprocess.py:460: ResourceWarning: unclosed file <_io.BufferedReader name=3> return Popen(*popenargs, **kwargs).wait() /usr/lib64/python3.2/subprocess.py:460: ResourceWarning: unclosed file <_io.BufferedReader name=8> return Popen(*popenargs, **kwargs).wait() ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................first so_ext .cpython-32mu.so returned so_ext .so E........ ====================================================================== ERROR: test_datetime_divide (test_datetime.TestDateTime) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib64/python3.2/site-packages/numpy/core/tests/test_datetime.py", line 762, in test_datetime_divide assert_equal(tda / tdb, 6.0 / 9.0) TypeError: internal error: could not find appropriate datetime inner loop in true_divide ufunc ====================================================================== ERROR: Failure: OSError (/usr/lib64/python3.2/site-packages/numpy/core/multiarray.so: cannot open shared object file: No such file or directory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.2/site-packages/nose-1.0.0-py3.2.egg/nose/failure.py", line 37, in runTest raise self.exc_class(self.exc_val).with_traceback(self.tb) File "/usr/lib/python3.2/site-packages/nose-1.0.0-py3.2.egg/nose/loader.py", line 390, in loadTestsFromName addr.filename, addr.module) File "/usr/lib/python3.2/site-packages/nose-1.0.0-py3.2.egg/nose/importer.py", line 39, in importFromPath return self.importFromDir(dir_path, fqname) File "/usr/lib/python3.2/site-packages/nose-1.0.0-py3.2.egg/nose/importer.py", line 86, in importFromDir mod = load_module(part_fqname, fh, filename, desc) File "/usr/lib64/python3.2/site-packages/numpy/tests/test_ctypeslib.py", line 9, in <module> cdll = load_library('multiarray', np.core.multiarray.__file__) File "/usr/lib64/python3.2/site-packages/numpy/ctypeslib.py", line 124, in load_library raise exc File "/usr/lib64/python3.2/site-packages/numpy/ctypeslib.py", line 121, in load_library return ctypes.cdll[libpath] File "/usr/lib64/python3.2/ctypes/__init__.py", line 415, in __getitem__ return getattr(self, name) File "/usr/lib64/python3.2/ctypes/__init__.py", line 410, in __getattr__ dll = self._dlltype(name) File "/usr/lib64/python3.2/ctypes/__init__.py", line 340, in __init__ self._handle = _dlopen(self._name, mode) OSError: /usr/lib64/python3.2/site-packages/numpy/core/multiarray.so: cannot open shared object file: No such file or directory ====================================================================== FAIL: Test custom format function for each element in array. ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib64/python3.2/site-packages/numpy/core/tests/test_arrayprint.py", line 86, in test_format_function "[0x0L 0x1L 0x2L]") File "/usr/lib64/python3.2/site-packages/numpy/testing/utils.py", line 313, in assert_equal raise AssertionError(msg) AssertionError: Items are not equal: ACTUAL: '[0x0 0x1 0x2]' DESIRED: '[0x0L 0x1L 0x2L]' ====================================================================== FAIL: test_datetime_as_string (test_datetime.TestDateTime) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib64/python3.2/site-packages/numpy/core/tests/test_datetime.py", line 1001, in test_datetime_as_string '1959') File "/usr/lib64/python3.2/site-packages/numpy/testing/utils.py", line 313, in assert_equal raise AssertionError(msg) AssertionError: Items are not equal: ACTUAL: b'1959' DESIRED: '1959' ---------------------------------------------------------------------- Ran 3215 tests in 45.744s FAILED (KNOWNFAIL=4, SKIP=2, errors=2, failures=2) <nose.result.TextTestResult run=3215 errors=2 failures=2> _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion