[NumPy-Tickets] [NumPy] #1787: ctypeslib test error on python 3.2
NumPy Trac
numpy-tickets@scipy....
Tue Mar 29 02:05:05 CDT 2011
#1787: ctypeslib test error on python 3.2
---------------------------+------------------------------------------------
Reporter: matthew.brett | Owner: somebody
Type: defect | Status: new
Priority: normal | Milestone: Unscheduled
Component: Other | Version: devel
Keywords: |
---------------------------+------------------------------------------------
{{{
nosetests tmp/junk/lib/python3.2/site-
packages/numpy/tests/test_ctypeslib.py
}}}
gives
{{{
======================================================================
ERROR: Failure: OSError (/home/mb312/tmp/junk/lib/python3.2/site-
packages/numpy/core/multiarray.pyd: cannot open shared object file: No
such file or directory)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python3.2/dist-
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/local/lib/python3.2/dist-
packages/nose-1.0.0-py3.2.egg/nose/loader.py", line 390, in
loadTestsFromName
addr.filename, addr.module)
File "/usr/local/lib/python3.2/dist-
packages/nose-1.0.0-py3.2.egg/nose/importer.py", line 39, in
importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/local/lib/python3.2/dist-
packages/nose-1.0.0-py3.2.egg/nose/importer.py", line 86, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/home/mb312/tmp/junk/lib/python3.2/site-
packages/numpy/tests/test_ctypeslib.py", line 8, in <module>
cdll = load_library('multiarray', np.core.multiarray.__file__)
File "/home/mb312/tmp/junk/lib/python3.2/site-
packages/numpy/ctypeslib.py", line 122, in load_library
raise exc
File "/home/mb312/tmp/junk/lib/python3.2/site-
packages/numpy/ctypeslib.py", line 119, in load_library
return ctypes.cdll[libpath]
File "/usr/lib/python3.2/ctypes/__init__.py", line 415, in __getitem__
return getattr(self, name)
File "/usr/lib/python3.2/ctypes/__init__.py", line 410, in __getattr__
dll = self._dlltype(name)
File "/usr/lib/python3.2/ctypes/__init__.py", line 340, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /home/mb312/tmp/junk/lib/python3.2/site-
packages/numpy/core/multiarray.pyd: cannot open shared object file: No
such file or directory
}}}
This is because the compiled file is now multiarray.cpython-32mu.so not
multiarray.so or multiarray.pyd as the ctypeslib was previously expecting.
One fix is to add in ctypeslib around line 100:
{{{
py_exts = [suf for suf, mode, mtype in imp.get_suffixes()
if mtype == imp.C_EXTENSION]
}}}
to the extensions to be tested (which will pick up .so along with cpython-
32mu.so and modulecpython-32mu.so). This would mean, for non-python
libraries, the number of exts to search for would increase, presumably not
very usefully because we don't often use ctypeslib for python extensions,
I suppose.
--
Ticket URL: <http://projects.scipy.org/numpy/ticket/1787>
NumPy <http://projects.scipy.org/numpy>
My example project
More information about the NumPy-Tickets
mailing list