Como posso instalar um python de 32 bits no Ubuntu de 64 bits

7

Estou usando o 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 ) e o pacote Python padrão (Python 2.6.6).

Gostaria de instalar python-psyco para melhorar o desempenho de um dos meus scripts, mas apenas python-psyco-doc está disponível para 64 bits. Eu tentei uma máquina virtual, mas o aumento de desempenho é muito menor na máquina virtual do que em um Ubuntu de 32 bits "real" instalado.

Então, minha pergunta é: Como posso instalar um Python 32Bit com psyco na minha máquina Ubuntu 64Bit?

edit: encontrei este artigo e fez isso:

  • Faça o download do "tarball de origem bzip" do Python 2.7.1 do link
  • Vá para o diretório em que você descomprimiu "Python 2.7.1"
  • OPT=-m32 LDFLAGS=-m32 ./configure --prefix=/opt/pym32
  • make

Mas recebi este erro:

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: agora eu encontrei link e parece que funcionou assim:

  • 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

Mas instalar o psyco não funcionou:

  • Faça o download do último instantâneo: link
  • Extraia e vá para a pasta
  • python setup.py install

Este erro apareceu:

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

A instalação do pacote python-dev resolveu o problema, mas ainda não consegui usar o psyco. Agora eu instalei um sistema Ubuntu de 32 bits.

    
por Martin Thoma 06.03.2011 / 15:04

2 respostas

7

Para executar aplicativos de 32 bits em um sistema Ubuntu de 64 bits, você precisará de ia32-libs . A partir de um terminal, valide se você tiver isso usando

dpkg -l ia32-libs

Se você o instalou, a saída deve se parecer com:

ii   ia32-libs ...

Se parecer com un ia32-libs , você precisa instalá-lo usando:

sudo apt-get install ia32-libs
    
por Jamess 09.03.2011 / 15:04
4

Eu finalmente consegui que isso funcionasse com a instalação de um ambiente de schroot de 32 bits. Siga as instruções aqui: link

Eu usei o seguinte arquivo de configuração para o meu 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

Uma vez instalado, inicie a sessão do schroot:

schroot -c natty32 -u root

Em seguida, instale o python2.6 com o apt-get, instale o pip usando-o ( link ) e, em seguida, instale o pip psyco, numpy, & c.

    
por artemyk 24.07.2011 / 14:05