web-dev-qa-db-fra.com

Comment puis-je installer un python 32 bits sur Ubuntu 64 bits

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:

  • Téléchargement de "l'archive source Python 2.7.1 bzipped" sur http://python.org/download/
  • Allez dans le répertoire où vous avez décompressé "Python 2.7.1"
  • 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 \ -Lpwd/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.

7
Martin Thoma

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
7
Jamess

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.

4
artemyk