Recommandation lors de l’installation de python sur un plateforme linux 64 bits


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:58)
[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:58)
[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.

Les commentaires sont fermés.

%d blogueurs aiment cette page :