3

在 Linux 32 位 Ubuntu 11 上生成了一个可执行文件,并在 32 位 Ubuntu 10 上对其进行了测试,但由于找不到“GLIBC_2.15”而失败。

4

1 回答 1

6

Cyrhon 常见问题解答部分说:

在 Linux 下,我得到与 libc 相关的运行时动态链接器错误。我应该怎么办? PyInstaller 构建的可执行文件不是完全静态的,因为它仍然依赖于系统 libc。在 Linux 下,GLIBC 的 ABI 是向后兼容的,但不是向前兼容的。因此,如果您链​​接到较新的 GLIBC,则无法在较旧的系统上运行生成的可执行文件。提供的二进制引导加载程序应该适用于较旧的 GLIBC。但是,libpython.so 和其他动态库仍然依赖于较新的 GLIBC。解决方案是在您拥有的最旧系统上编译 Python 解释器及其模块(也可能是引导加载程序),以便它与最旧版本的 GLIBC 链接。

如何让最近的 Python 环境在旧的 Linux 发行版上运行? 问题是 Python 及其模块必须针对较旧的 GLIBC 进行编译。另一个问题是您可能想要使用最新的 Python 功能,而在旧的 Linux 发行版上只有真正旧的 Python 版本可用(例如,在 Centos 5 上可用的 Python 2.4)。

于 2013-07-15T12:33:13.427 回答