[Numpy-discussion] ANN: Numpy 1.6.1 release candidate 1

Bruce Southey bsouthey at gmail.com
Mon Jun 20 21:55:09 EDT 2011


On Mon, Jun 20, 2011 at 2:43 PM, Ralf Gommers
<ralf.gommers at googlemail.com> wrote:
>
>
> On Mon, Jun 20, 2011 at 8:50 PM, Bruce Southey <bsouthey at 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>



More information about the NumPy-Discussion mailing list