我一直在开发一个自定义程序,它允许我控制我网络上的其他基于 Linux 的计算机。我一直在使用 Python 并使用 PyInstaller 将代码编译成 Linux 可执行文件。 在我自己的计算机上运行可执行文件工作得很好并且完全按照预期进行。但是一旦我将它发送到另一台计算机进行测试,我就会收到此错误。
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.25' not found (required by /tmp/_MEIXcUz91/libudev.so.1)
[3716] Failed to execute script RP
还有我用PyInstaller编译代码的命令
python pyinstaller.py -D -F -n RP -c RP.py
同样,可执行文件在我用来创建和编译它的计算机上运行完美,但是一旦我将它发送到我的另一台基于 Linux 的计算机并执行它,它就会崩溃。
最佳答案
问题是你在两台机器上有不同的 C 系统库。移植预构建的二进制文件时有时会遇到困难。您要么确保您使用的是相似的环境,要么将所有依赖项放入二进制文件中——这可能会显着增加其大小。要执行后者,您需要在编译期间使用“--static”关键字。不过,我不确定这是否足够。
编辑:
由于这是一个纯 Python 项目,您应该确保使用的 Python 版本是兼容的,即相同的 Python 版本和相同的 Python 构建(CPython 等)。
关于python - 在其他 Linux 计算机上运行已编译的 Linux 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47212940/