L’installation des modules python demande une précaution: être sur d’utiliser les version 64bits des bibliothèques C sous peine d’avoir de drôles d’erreurs absolument intraçables.
La solution est de déclarer le chemin vers /usr/lib64 explicitement pour lors des l’édition des liens:
export LD_LIBRARY_PATH=/usr/lib64
Exemple avec PIL
Version installé avec libjpeg-devel_32, zlib-devel_64 et freetype-devel_64. A la fin de l’installation on vous dit ça:
--------------------------------------------------------------------
version 1.1.6
platform linux2 2.4.4 (#2, Jul 17 2007, 10:05:5
[GCC 4.1.2 20070115 (prerelease) (SUSE Linux)]
——————————————————————–
*** TKINTER support not available
— JPEG support ok
*** ZLIB (PNG/ZIP) support not available
*** FREETYPE2 support not available
——————————————————————–
Le support jpeg est le seul installé… du coup l’intervenant installe les versions devel_32 pour les autres.
Vous noterez qu’il n’y a aucune référence au 64bits dans les infos sur la plateforme.
--------------------------------------------------------------------
PIL 1.1.6 BUILD SUMMARY
——————————————————————–
version 1.1.6
platform linux2 2.4.4 (#2, Jul 17 2007, 10:05:5
[GCC 4.1.2 20070115 (prerelease) (SUSE Linux)]
——————————————————————–
*** TKINTER support not available
— JPEG support ok
— ZLIB (PNG/ZIP) support ok
— FREETYPE2 support ok
——————————————————————–toto@webtest:/tmp/Imaging-1.1.6> /usr/local/bin/python2.4 selftest.py
*****************************************************************
Failure in example: _info(Image.open(”Images/lena.jpg”))
from line #24 of selftest.testimage
Exception raised:
Traceback (most recent call last):
File “./doctest.py”, line 499, in _run_examples_inner
exec compile(source, “<string>”, “single”) in globs
File “<string>”, line 1, in ?
File “./selftest.py”, line 22, in _info
im.load()
File “PIL/ImageFile.py”, line 180, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File “PIL/Image.py”, line 375, in _getdecoder
raise IOError(”decoder %s not available” % decoder_name)
IOError: decoder jpeg not available
1 items had failures:
1 of 57 in selftest.testimage
***Test Failed*** 1 failures.
*** 1 tests of 57 failed.
Là, l’intervenant commence à se ronger les ongles et à chercher l’entrée de la 4ème dimension.
Il fouille le net et fini par tomber sur un message d’espoir:
http://osdir.com/ml/python.image/2006-05/msg00029.html
Évidemmement il n’y a aucune référence à ce point dans la documentation de PIL.
Donc, il faut installer les versions -devel_64 des bibliothèques et déclarer LD_LIBRARY_PATH dans votre shell:
toto@webtest:/tmp/Imaging-1.1.6> /usr/local/bin/python2.4 selftest.py
57 tests passed.
Que du bonheur.





