Ubuntu 16.04-同时拥有 32 位和 64 位 Python

Ubuntu 16.04-同时拥有 32 位和 64 位 Python

我正在尝试安装python-pin。此工具使用 32 位的 Pin(英特尔检测工具)。当我尝试运行 python-pin 时,我得到:

E: Unable to load /home/censored/Documents/tools/Python_Pin/obj-intel64/Python_Pin.so: dlopen failed: library "libpython2.7.so.1.0" not found

我确实有 libpython2.7.so.1.0,位于:

/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0

但是它是 64 位的,而需要它的库是 32 位的。经过大量研究,我发现了以下与我的问题类似的问题:

如何在 64 位 Ubuntu 上安装 32 位 Python

这个适用于 Ubuntu 10.10,但对我来说这个解决方案似乎不起作用。

这些是更普遍的:

如何在 64 位版本的 Ubuntu 上运行 32 位程序?

如何在 64 位 Ubuntu 中运行 32 位应用程序?

阅读完这些内容后,我安装了 32 位版本的 python-dev:

$ sudo apt-get install python-dev:i386

安装成功,但是我找不到 32 位版本的 libpython2.7.so.1.0,而且仍然无法启动 python-pin。

编辑:

我已经通过以下方式手动编译了32位python:

$ CC="gcc -m32" LDFLAGS="-L/lib32 -L/usr/lib32 \
-Lpwd/lib32 -Wl,-rpath,/lib32 -Wl,-rpath,/usr/lib32" ./configure --prefix=/opt/pym32 --enable-shared
$ make
$ sudo make install

现在我的 Python 文件夹中终于有一个 32 位 libpython2.7.so.1.0 文件了。不过,当我这样做时:

$ LD_PRELOAD=/home/censored/Documents/tools/Python-2.7.13/libpython2.7.so.1.0 bin/python-pin Python_Pin/examples/ins_count.py /bin/ls

我收到这些错误:

ERROR: ld.so: object '/home/censored/Documents/tools/Python-2.7.13/libpython2.7.so.1.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

相关内容