使用Buildroot 2017.08编译错误

时间:2017-09-25 05:00:21

标签: python sqlite cross-compiling buildroot

我有一个自定义的python包,它在setup.py中导入sqlite3。 使用Buildroot 2017.02编译时(命令:make clean all),没问题。 但是在将Buildroot更新到2017.08之后我得到了编译错误(命令:make clean all)。

Traceback (most recent call last):
  File "setup.py", line 4, in <module>
    import sys, glob, sqlite3
ImportError: No module named sqlite3

以下是我在// buildroot / output / host /中找到“sqlite *”时的列表,它在主机文件夹中有sqlite3数据包(2017.08):

./arm-buildroot-linux-gnueabi/sysroot/usr/lib/pkgconfig/sqlite3.pc
./arm-buildroot-linux-gnueabi/sysroot/usr/lib/python2.7/sqlite3
./arm-buildroot-linux-gnueabi/sysroot/usr/share/man/man1/sqlite3.1
./arm-buildroot-linux-gnueabi/sysroot/usr/bin/sqlite3
./arm-buildroot-linux-gnueabi/sysroot/usr/include/sqlite3ext.h
./arm-buildroot-linux-gnueabi/sysroot/usr/include/sqlite3.h
./lib/pkgconfig/sqlite3.pc
./share/man/man1/sqlite3.1
./bin/sqlite3
./include/sqlite3ext.h
./include/sqlite3.h

非常感谢每一个提示。

1 个答案:

答案 0 :(得分:0)

这应该永远不会开始。 host-python在Buildroot中没有sqlite3模块(cfr。--disable-sqlite3中的HOST_PYTHON_CONF_OPTS)。因此,不应该从setup.py脚本导入sqlite3模块。这个--disable-sqlite3选项已经存在了很长时间。

2017.08改变的一件事是$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages已从PYTHON_PATH中删除。所以也许你之前安装了一个sqlite3模块,它碰巧运行了。

最简单的解决方案可能是将--disable-sqlite3更改为--enable-sqlite3并使host-python依赖于host-sqlite3。