I'm having all kinds of problems installing PyTables, whose developer
suggested I seek help here, as the problem seems related to my HDF5
installation or its use of SZIP.
First, my system configuration:
Mac OS 10.6.4
Intel Core 2 Duo (64-bit)
Python 2.7 (binaries from python.org)
Numpy 1.5.0b1 (binaries from scipy.org)
I've installed all of Pytables's dependencies, and those dependencies'
dependencies: Numexpr (1.4, via easy_install), bzip2 (1.0.5, built from
source), SZIP (2.1, built from source), LZO (2.03, built from source), zlib
(1.2.5, built from source), all without apparent problems. The stuff I built
from source passed all tests in make check/test.
I tried installing the HDF5 1.8.5 binaries available on the website, and
when that didn't work I built it from source. The tests in make check/test
all PASS, except a couple are SKIPPED. But when I try to install PyTables
(both via easy_install and via setup.py), things go wrong. This first step
yields no errors, but there's a scary warning about not finding the HDF5
runtime):
tables-2.2 myuser$ sudo python setup.py build_ext --inplace
* Found numpy 1.5.0b1 package installed.
* Found numexpr 1.4 package installed.
* Found HDF5 headers at ``/usr/local/include``, library at
``/usr/local/lib``.
.. WARNING:: Could not find the HDF5 runtime.
The HDF5 shared library was *not* found in the default library
paths. In case of runtime problems, please remember to install it.
* Found LZO 2 headers at ``/usr/local/include``, library at
``/usr/local/lib``.
* Skipping detection of LZO 1 since LZO 2 has already been found.
* Found bzip2 headers at ``/usr/include``, library at ``/usr/lib``.
* Found pthreads headers at ``/usr/include``, library at ``/usr/lib``.
running build_ext
cythoning tables/linkExtension.pyx to tables/linkExtension.c
building 'tables.linkExtension' extension
The same thing happens if I use the --hdf5=whatever command. There's more
output that includes a bunch of architectural warnings, but no errors. That
looks OK to me because the errors are all for ppc and i386 architectures,
and I should need the x86_64 stuff. Then if I run Python and try to load
Pytables, I get this error:
import tables
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "tables/__init__.py", line 63, in <module>
from tables.utilsExtension import getPyTablesVersion, getHDF5Version
ImportError: dlopen(tables/utilsExtension.so, 2): Symbol not found:
_SZ_BufftoBuffCompress
Referenced from: /usr/local/src/tables-2.2/tables/utilsExtension.so
Expected in: flat namespace
in /usr/local/src/tables-2.2/tables/utilsExtension.so
I've ended up with the same error through every permutation of the
installation process that I've tried. I rebuilt HDF5 several times, and I
verified that it was finding the SZIP libraries; The HDF5 ./configure even
outputted this line:
checking for SZ_BufftoBuffCompress in -lsz... yes
Yet that seems to be the stumbling block. Does anyone know anything about
SZ_BufftoBuffCompress? Very little shows up on Google, and nothing on this
mailing list. I assume from the name that it is a SZIP thing, so I tried
reinstalling that several times, building HDF5 with and without the SZIP
flag, etc., all to no avail.
I'd be grateful for any pointers.
Regards,
Eric