web-dev-qa-db-ja.com

64ビットUbuntuに32ビットpythonをインストールする方法

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)とデフォルトのpythonパッケージ(Python 2.6.6)を使用しています。

python-psycoをインストールしてスクリプトのパフォーマンスを改善したいのですが、64ビットで利用できるのはpython-psyco-docのみです。仮想マシンを試しましたが、パフォーマンスの向上は、「実際の」インストールされた32ビットUbuntuよりも仮想マシンの方がはるかに小さくなります。

私の質問は次のとおりです。64ビットUbuntuマシンに32ビットPythonをpsycoとともにインストールするにはどうすればよいですか。

編集: この記事 を見つけ、これを作成しました:

  • http://python.org/download/ から「Python 2.7.1 bzipped source tarball」をダウンロードします
  • 「Python 2.7.1」を解凍したディレクトリに移動します
  • OPT=-m32 LDFLAGS=-m32 ./configure --prefix=/opt/pym32
  • make

しかし、私はこのエラーを受け取りました:

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:見つけました http://indefinitestudies.org/2010/02/08/how-to-build-32-bit-python-on-ubuntu-9-10-x86_64/ これはうまくいったようです:

  • 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

しかし、psycoのインストールは機能しませんでした。

このエラーが表示されました:

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

パッケージpython-devをインストールすると問題は解決しましたが、psycoを使用できませんでした。これで32ビットUbuntuシステムをインストールしました。

7
Martin Thoma

64ビットUbuntuシステムで32ビットアプリケーションを実行するには、ia32-libsが必要です。ターミナルから、これを使用しているかどうかを検証します

dpkg -l ia32-libs

インストールした場合、出力は次のようになります。

ii   ia32-libs ...

un ia32-libsのように見える場合は、次を使用してインストールする必要があります。

Sudo apt-get install ia32-libs
7
Jamess

32ビットのschroot環境をインストールすることで、ようやくこれが機能するようになりました。ここの指示に従ってください: https://help.ubuntu.com/community/DebootstrapChroot

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

インストールしたら、schrootセッションを開始します。

schroot -c natty32 -u root

次に、apt-getを使用してpython2.6をインストールし、それを使用してpipをインストールします( http://guide.python-distribute.org/installation.html )。次に、psyco、numpy、&cをpipインストールします。

4
artemyk