J'utilise Ubuntu 10.10 (Linux pc07 2.6.35-27-generic #48-Ubuntu SMP Tue Feb 22 20:25:46 UTC 2011 x86_64 GNU/Linux
) et le package python par défaut (Python 2.6.6).
J'aimerais installer python-psyco
pour améliorer les performances de l'un de mes scripts, mais seul python-psyco-doc
est disponible en 64 bits. J'ai essayé une machine virtuelle, mais le gain de performances est bien moindre sur la machine virtuelle que sur un "vrai" Ubuntu 32 bits installé.
Ma question est donc la suivante: comment puis-je installer un Python 32 bits avec psyco sur mon ordinateur Ubuntu à 64 bits?
edit: j'ai trouvé cet article et fait ceci:
OPT=-m32 LDFLAGS=-m32 ./configure --prefix=/opt/pym32
make
Mais j'ai eu cette erreur:
gcc -pthread -m32 -Xlinker -export-dynamic -o python \
Modules/python.o \
libpython2.7.a -lpthread -ldl -lutil -lm
libpython2.7.a(posixmodule.o): In function `posix_tmpnam':
/home/moose/Downloads/Python-2.7.1/./Modules/posixmodule.c:7346: warning: the use of `tmpnam_r' is dangerous, better use `mkstemp'
libpython2.7.a(posixmodule.o): In function `posix_tempnam':
/home/moose/Downloads/Python-2.7.1/./Modules/posixmodule.c:7301: warning: the use of `tempnam' is dangerous, better use `mkstemp'
Segmentation fault
make: *** [sharedmods] Fehler 139
edit2: Maintenant j'ai trouvé http://indefinitestudies.org/2010/02/08/how-to-build-32-bit-python-on-ubuntu-9-10-x86_64/ et il semble que cela a fonctionné:
cd Python-2.7.1
CC="gcc -m32" LDFLAGS="-L/lib32 -L/usr/lib32 \ -L
pwd/lib32 -Wl,-rpath,/lib32 -Wl,-rpath,/usr/lib32" \ ./configure --prefix=/opt/pym32
make
Sudo make install
Mais installer psyco n'a pas fonctionné:
Cette erreur est apparue:
PROCESSOR = 'ivm'
running install
running build
running build_py
running build_ext
building 'psyco._psyco' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DALL_STATIC=1 -Ic/ivm -I/usr/include/python2.6 -c c/psyco.c -o build/temp.linux-x86_64-2.6/c/psyco.o
In file included from c/psyco.c:1:
c/psyco.h:9: fatal error: Python.h: Datei oder Verzeichnis nicht gefunden
compilation terminated.
error: command 'gcc' failed with exit status 1
L'installation du package python-dev
a résolu le problème, mais je ne pouvais toujours pas utiliser psyco. Maintenant, j'ai installé un système Ubuntu à 32 bits.
Pour exécuter des applications 32 bits sur un système Ubuntu 64 bits, vous aurez besoin de ia32-libs
. Depuis un terminal, validez si vous avez ceci en utilisant
dpkg -l ia32-libs
Si vous l'avez installé, le résultat devrait ressembler à ceci:
ii ia32-libs ...
Si cela ressemble à un ia32-libs
, vous devez l’installer en utilisant:
Sudo apt-get install ia32-libs
J'ai finalement réussi à faire fonctionner cela en installant un environnement schroot'ed de 32 bits. Suivez les instructions ici: https://help.ubuntu.com/community/DebootstrapChroot
J'ai utilisé le fichier de configuration suivant pour mon schroot (/etc/schroot/chroot.d/natty32.conf
):
[natty32]
description=Ubuntu 11 for i386
directory=/srv/chroot/natty32
personality=linux32
root-users=myloginname
type=directory
users=myloginname
Une fois installé, démarrez la session schroot:
schroot -c natty32 -u root
Installez ensuite python2.6 avec apt-get, installez pip en l’utilisant ( http://guide.python-distribute.org/installation.html ), puis installez psyco, numpy, etc.