python - 交叉编译的 Python 找不到基本模块(数学、运算符等)

标签 python linux embedded cross-compiling

我似乎无法导入位于“lib-dynload”目录中的任何基本模块。它们都在那里,但在尝试导入它们时出现错误:"ImportError: No module named X"

我检查了我的 sys.path,它包括所有这些模块所在的目录,并且我的 PYTHONHOME 环境变量设置正确。对于问题可能是什么,我有点不知所措。一些背景信息:这是从 Python 2.6.6 源代码交叉编译并安装到带有 Angstrom 的 ARM 嵌入式 Linux 板上。

它之前确实有 python,我曾尝试将它位烘焙到图像中,但它丢失了很多东西。在加载到我的交叉编译版本之前,我最终尽我最大的努力清理目录树中与以前的 python 相关的任何内容。

只是尝试导入 math 的简单脚本的 strace:http://pastebin.com/3XgJ3nPR

最佳答案

我在该跟踪中没有看到像 math.somathmodule.so 这样的文件名的检查,这可能表明共享对象模块已完全关闭——版本您编译的 Python 无法动态加载二进制模块。

更多:查看我最近的 Python 构建中的 config.out,我看到几行 Python 正在调查平台是否允许它动态加载二进制模块以 .so 结尾:

checking for dlopen... yes
checking DYNLOADFILE... dynload_shlib.o
checking MACHDEP_OBJS... MACHDEP_OBJS

这些行在您的交叉编译中说明了什么?

关于python - 交叉编译的 Python 找不到基本模块(数学、运算符等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5925419/

相关文章:

python conda : created a environment, 但它没有使用 conda 的 python

python - SQLAlchemy:按关系过滤

无法写入 dsPIC30F OSCCON

gdb - 像 gdb 这样的调试器如何通过 JTAG 设置断点?

linux - 无法为 debian wheezy 正确安装 "sshfs-dbg"(7)

c - 这个C union 的成员有什么区别吗?

python - 使用 python_requires 要求 Python 2.7 或 3.2+

python - 卫星图像分类 Opencv

linux - SQLmap:-u 和-r 命令的用法

linux - 循环遍历 num_machines 在下面的脚本中,表达式 num_machines=X 中的值每次都会改变