On 5/24/2010 12:31 AM, Francesc Alted wrote:
> 2010/5/24 Christoph Gohlke <cgoh...@uci.edu <mailto:cgoh...@uci.edu>>
>
>         2.- In order to load DLLs, PyTables uses a the `LoadLibrary`
>         function to
>         check whether the DLL is available or not (see `getLibrary`
>         function in
>         src/utils.c for details).  Perhaps `LoadLibrary` Win call does
>         not work
>         the same in Python 64/Win 64?
>
>
>
>
>     Thanks for the hint. Turns out that the 64 bit DLL name is "libbz2"
>     on my system, while utilsExtension.pyx hard-codes the name "bzip2".
>     Also, while "import tables._comp_lzo" succeeds, LoadLibrary("lzo2")
>     does not because the Python\Lib\site-packages\tables directory,
>     where I place the DLLs, is not in the system path. Easy to fix...
>
>
> Great.  But I don't know why LZO DLL is not searched by default in
> Python\Lib\site-packages\tables as this path should be searched by
> default by the Python interpreter.  Or perhaps this is valid only for
> extensions (.pyd) and not DLLs (.dll)?

That is a common issue on Python for Windows: sys.path != 
os.environ['PATH']. No directory in the Python tree is in 
os.environ['PATH'] by default. As a workaround to LoadLibrary and 
PyImport_ImportModule problems I sometimes add the following code to a 
package __init__.py file.

import sys, os
if os.name == 'nt':
     module_path = os.path.abspath(os.path.dirname(__file__))
     os.environ['PATH'] = ';'.join((os.environ['PATH'], module_path))
     sys.path.append(module_path)


>
>     I ran examples/table1.py with no compression, zlib, lzo, blosc, and
>     bzip2 just fine.
>
>
> This means that zlib (or any other compression library) is not the problem.
>
>     I have recompiled everything using the following version, but the
>     tests still fail as before. Zlib shows as version 1.2.3 (that's what
>     Python is using internally) event though I am now linking against 1.2.5.
>
>
> Do not pay too much attention to the Zlib version stated by
> tables.print_versions().  As HDF5 does not allow to query the version of
> their compression libraries, print_versions() only prints the zlib
> version available via the Python interpreter.  Mmh, this is misleading,
> and perhaps it would be better if I remove this info (I've added a
> ticket about this: http://www.pytables.org/trac/ticket/277).
>
>     
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>     PyTables version:  2.2rc1
>     HDF5 version:      1.8.5-pre1
>     NumPy version:     2.0.0.dev8426
>
>     Numexpr version:   1.3.1 (not using Intel's VML/MKL)
>     Zlib version:      1.2.3
>     LZO version:       2.03 (Apr 30 2008)
>     BZIP2 version:     1.0.5 (10-Dec-2007)
>
>     Blosc version:     0.9.0 (2010-05-04)
>     Python version:    2.7b2 (r27b2:81019, May  9 2010, 10:33:25) [MSC
>     v.1500 64 bit (AMD64)]
>     Byte-ordering:     little
>     
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
>     The following examples fail/crash:
>
>     array1.py
>
>
> Hey, array1.py does not use compression at all, so compression is
> definitely not the issue.  Moreover, it is small enough to allow a guess
> on what is failing.  With the next stripped out version or array1.py:
>
> """
> from numpy import *
> from tables import *
>
> fileh = openFile("array1.h5", mode = "w")
> # Get the root group
> root = fileh.root
>
> # Create an Array
> a = array([-1, 2, 4], int16)
> # Save it on the HDF5 file
> hdfarray = fileh.createArray(root, 'array_1', a, "Signed short array")
>
> # Create a scalar Array
> a = array(4, int16)
> # Save it on the HDF5 file
> hdfarray = fileh.createArray(root, 'array_s', a, "Scalar signed short
> array")
>
> # Create a 3-d array of floats
> a = arange(120, dtype=float64).reshape(20,3,2)
> # Save it on the HDF5 file
> hdfarray = fileh.createArray(root, 'array_f', a, "3-D float array")
>
> # Close the file
> fileh.close()
> """
>
> could you try to comment out ``createArray()`` lines until it works
> well?  Knowing the which line triggers the error would put us into the
> good track (I suspect of internal handling of ints, but let's see).
>

OK. The result depends on whether I run your stripped down code or the 
original array1.py file.


Original array1.py:
1, s, f: crash, no traceback or console output
1, s:    crash with traceback #1
1, f:    crash with traceback #1
s, f:    crash with traceback #2
1:       OK
s:       OK
f:       crash with traceback #3


Stripped down version of array1.py:
1, s, f: crash with traceback #1  <- different
1, s:    crash with traceback #1
1, f:    crash with traceback #1
s, f:    crash with traceback #2
1:       crash with traceback #1   <- different
s:       OK
f:       crash with traceback #2   <- different


1 -> hdfarray = createArray(root, 'array_1' ...
s -> hdfarray = createArray(root, 'array_s' ...
f -> hdfarray = createArray(root, 'array_f' ...


Thanks for your help!

--
Christoph


Traceback #1

HDF5-DIAG: Error detected in HDF5 (1.8.5-pre1) thread 0:
   #000: ..\..\hdf5-1.8.5-svn\src\H5Dio.c line 266 in H5Dwrite(): can't 
write data
     major: Dataset
     minor: Write failed
   #001: ..\..\hdf5-1.8.5-svn\src\H5Dio.c line 578 in H5D_write(): can't 
write data
     major: Dataset
     minor: Write failed
   #002: ..\..\hdf5-1.8.5-svn\src\H5Dcontig.c line 557 in 
H5D_contig_write(): contiguous write failed

     major: Dataset
     minor: Write failed
   #003: ..\..\hdf5-1.8.5-svn\src\H5Dselect.c line 306 in 
H5D_select_write(): write error
     major: Dataspace
     minor: Write failed
   #004: ..\..\hdf5-1.8.5-svn\src\H5Dselect.c line 217 in 
H5D_select_io(): write error
     major: Dataspace
     minor: Write failed
   #005: ..\..\hdf5-1.8.5-svn\src\H5Dcontig.c line 949 in 
H5D_contig_writevv(): block write failed
     major: Low-level I/O
     minor: Write failed
   #006: ..\..\hdf5-1.8.5-svn\src\H5Fio.c line 167 in H5F_block_write(): 
file write failed
     major: Low-level I/O
     minor: Write failed
   #007: ..\..\hdf5-1.8.5-svn\src\H5FDint.c line 185 in H5FD_write(): 
driver write request failed
     major: Virtual File Layer
     minor: Write failed
   #008: ..\..\hdf5-1.8.5-svn\src\H5FDwindows.c line 944 in 
H5FD_windows_write(): file write failed,
errno = 22, error message = 'Invalid argument'
     major: Low-level I/O
     minor: Write failed
Traceback (most recent call last):
   File "array1.py", line 13, in <module>
     hdfarray = fileh.createArray(root, 'array_1', a, "Signed short array")
   File "X:\Python27-x64\lib\site-packages\tables\file.py", line 785, in 
createArray
     object=object, title=title, byteorder=byteorder)
   File "X:\Python27-x64\lib\site-packages\tables\array.py", line 227, 
in __init__
     byteorder, _log)
   File "X:\Python27-x64\lib\site-packages\tables\leaf.py", line 291, in 
__init__
     super(Leaf, self).__init__(parentNode, name, _log)
   File "X:\Python27-x64\lib\site-packages\tables\node.py", line 296, in 
__init__
     self._v_objectID = self._g_create()
   File "X:\Python27-x64\lib\site-packages\tables\array.py", line 260, 
in _g_create
     nparr, self._v_new_title, self.atom)
   File "hdf5Extension.pyx", line 851, in 
tables.hdf5Extension.Array._createArray (tables\hdf5Extensi
on.c:7551)
tables.exceptions.HDF5ExtError: Problems creating the Array.
Closing remaining open files: array1.h5...HDF5-DIAG: Error detected in 
HDF5 (1.8.5-pre1) thread 0:
   #000: ..\..\hdf5-1.8.5-svn\src\H5F.c line 1957 in H5Fclose(): 
decrementing file ID failed
     major: Object atom
     minor: Unable to close file
   #001: ..\..\hdf5-1.8.5-svn\src\H5F.c line 1748 in H5F_close(): can't 
close file
     major: File accessability
     minor: Unable to close file
   #002: ..\..\hdf5-1.8.5-svn\src\H5F.c line 1896 in H5F_try_close(): 
problems closing file
     major: File accessability
     minor: Unable to close file
   #003: ..\..\hdf5-1.8.5-svn\src\H5F.c line 1069 in H5F_dest(): low 
level truncate failed
     major: File accessability
     minor: Write failed
   #004: ..\..\hdf5-1.8.5-svn\src\H5FD.c line 1965 in H5FD_truncate(): 
driver truncate request failed

     major: Virtual File Layer
     minor: Can't update object
   #005: ..\..\hdf5-1.8.5-svn\src\H5FDwindows.c line 1058 in 
H5FD_windows_truncate(): unable to exten
d file properly
     major: Low-level I/O
     minor: Seek failed



Traceback # 2

HDF5-DIAG: Error detected in HDF5 (1.8.5-pre1) thread 0:
   #000: ..\..\hdf5-1.8.5-svn\src\H5Dio.c line 266 in H5Dwrite(): can't 
write data
     major: Dataset
     minor: Write failed
   #001: ..\..\hdf5-1.8.5-svn\src\H5Dio.c line 578 in H5D_write(): can't 
write data
     major: Dataset
     minor: Write failed
   #002: ..\..\hdf5-1.8.5-svn\src\H5Dcontig.c line 557 in 
H5D_contig_write(): contiguous write failed

     major: Dataset
     minor: Write failed
   #003: ..\..\hdf5-1.8.5-svn\src\H5Dselect.c line 306 in 
H5D_select_write(): write error
     major: Dataspace
     minor: Write failed
   #004: ..\..\hdf5-1.8.5-svn\src\H5Dselect.c line 217 in 
H5D_select_io(): write error
     major: Dataspace
     minor: Write failed
   #005: ..\..\hdf5-1.8.5-svn\src\H5Dcontig.c line 949 in 
H5D_contig_writevv(): block write failed
     major: Low-level I/O
     minor: Write failed
   #006: ..\..\hdf5-1.8.5-svn\src\H5Fio.c line 167 in H5F_block_write(): 
file write failed
     major: Low-level I/O
     minor: Write failed
   #007: ..\..\hdf5-1.8.5-svn\src\H5FDint.c line 185 in H5FD_write(): 
driver write request failed
     major: Virtual File Layer
     minor: Write failed
   #008: ..\..\hdf5-1.8.5-svn\src\H5FDwindows.c line 944 in 
H5FD_windows_write(): file write failed,
errno = 22, error message = 'Invalid argument'
     major: Low-level I/O
     minor: Write failed
Traceback (most recent call last):
   File "array1.py", line 23, in <module>
     hdfarray = fileh.createArray(root, 'array_f', a, "3-D float array")
   File "X:\Python27-x64\lib\site-packages\tables\file.py", line 785, in 
createArray
     object=object, title=title, byteorder=byteorder)
   File "X:\Python27-x64\lib\site-packages\tables\array.py", line 227, 
in __init__
     byteorder, _log)
   File "X:\Python27-x64\lib\site-packages\tables\leaf.py", line 291, in 
__init__
     super(Leaf, self).__init__(parentNode, name, _log)
   File "X:\Python27-x64\lib\site-packages\tables\node.py", line 296, in 
__init__
     self._v_objectID = self._g_create()
   File "X:\Python27-x64\lib\site-packages\tables\array.py", line 260, 
in _g_create
     nparr, self._v_new_title, self.atom)
   File "hdf5Extension.pyx", line 851, in 
tables.hdf5Extension.Array._createArray (tables\hdf5Extensi
on.c:7551)
tables.exceptions.HDF5ExtError: Problems creating the Array.
Closing remaining open files: array1.h5...HDF5-DIAG: Error detected in 
HDF5 (1.8.5-pre1) thread 0:
   #000: ..\..\hdf5-1.8.5-svn\src\H5F.c line 1957 in H5Fclose(): 
decrementing file ID failed
     major: Object atom
     minor: Unable to close file
   #001: ..\..\hdf5-1.8.5-svn\src\H5F.c line 1748 in H5F_close(): can't 
close file
     major: File accessability
     minor: Unable to close file
   #002: ..\..\hdf5-1.8.5-svn\src\H5F.c line 1896 in H5F_try_close(): 
problems closing file
     major: File accessability
     minor: Unable to close file
   #003: ..\..\hdf5-1.8.5-svn\src\H5F.c line 1069 in H5F_dest(): low 
level truncate failed
     major: File accessability
     minor: Write failed
   #004: ..\..\hdf5-1.8.5-svn\src\H5FD.c line 1965 in H5FD_truncate(): 
driver truncate request failed

     major: Virtual File Layer
     minor: Can't update object
   #005: ..\..\hdf5-1.8.5-svn\src\H5FDwindows.c line 1058 in 
H5FD_windows_truncate(): unable to exten
d file properly
     major: Low-level I/O
     minor: Seek failed
  done



Traceback # 3

HDF5-DIAG: Error detected in HDF5 (1.8.5-pre1) thread 0:
   #000: ..\..\hdf5-1.8.5-svn\src\H5Ddeprec.c line 169 in H5Dcreate1(): 
unable to create dataset
     major: Dataset
     minor: Unable to initialize object
   #001: ..\..\hdf5-1.8.5-svn\src\H5Dint.c line 431 in 
H5D_create_named(): unable to create and link
to dataset
     major: Dataset
     minor: Unable to initialize object
   #002: ..\..\hdf5-1.8.5-svn\src\H5L.c line 1640 in H5L_link_object(): 
unable to create new link to
object
     major: Links
     minor: Unable to initialize object
   #003: ..\..\hdf5-1.8.5-svn\src\H5L.c line 1863 in H5L_create_real(): 
can't insert link
     major: Symbol table
     minor: Unable to insert object
   #004: ..\..\hdf5-1.8.5-svn\src\H5Gtraverse.c line 952 in 
H5G_traverse(): internal path traversal f
ailed
     major: Symbol table
     minor: Object not found
   #005: ..\..\hdf5-1.8.5-svn\src\H5Gtraverse.c line 759 in 
H5G_traverse_real(): traversal operator f
ailed
     major: Symbol table
     minor: Callback failed
   #006: ..\..\hdf5-1.8.5-svn\src\H5L.c line 1686 in H5L_link_cb(): 
unable to create object
     major: Object header
     minor: Unable to initialize object
   #007: ..\..\hdf5-1.8.5-svn\src\H5O.c line 2976 in H5O_obj_create(): 
unable to open object
     major: Object header
     minor: Can't open object
   #008: ..\..\hdf5-1.8.5-svn\src\H5Doh.c line 295 in H5O_dset_create(): 
unable to create dataset
     major: Dataset
     minor: Unable to initialize object
   #009: ..\..\hdf5-1.8.5-svn\src\H5Dint.c line 1035 in H5D_create(): 
unable to construct layout info
rmation
     major: Dataset
     minor: Unable to initialize object
   #010: ..\..\hdf5-1.8.5-svn\src\H5Dcontig.c line 410 in 
H5D_contig_construct(): unable to retrieve
number of elements in dataspace
     major: Dataset
     minor: Can't get value
HDF5-DIAG: Error detected in HDF5 (1.8.5-pre1) thread 0:
   #000: ..\..\hdf5-1.8.5-svn\src\H5D.c line 377 in H5Dclose(): not a 
dataset
     major: Invalid arguments to routine
     minor: Inappropriate type
Traceback (most recent call last):
   File "array1.py", line 23, in <module>
     hdfarray = fileh.createArray(root, 'array_f', a, "3-D float array")
   File "X:\Python27-x64\lib\site-packages\tables\file.py", line 785, in 
createArray
     object=object, title=title, byteorder=byteorder)
   File "X:\Python27-x64\lib\site-packages\tables\array.py", line 227, 
in __init__
     byteorder, _log)
   File "X:\Python27-x64\lib\site-packages\tables\leaf.py", line 291, in 
__init__
     super(Leaf, self).__init__(parentNode, name, _log)
   File "X:\Python27-x64\lib\site-packages\tables\node.py", line 296, in 
__init__
     self._v_objectID = self._g_create()
   File "X:\Python27-x64\lib\site-packages\tables\array.py", line 260, 
in _g_create
     nparr, self._v_new_title, self.atom)
   File "hdf5Extension.pyx", line 851, in 
tables.hdf5Extension.Array._createArray (tables\hdf5Extensi
on.c:7551)
tables.exceptions.HDF5ExtError: Problems creating the Array.
Closing remaining open files: array1.h5... done





------------------------------------------------------------------------------

_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to