好的,我一直在为此奋战2天,这通常意味着它太简单了,无法实现。在Python 2.6.6上导入sqlite3时找不到共享库_sqlite3.so
我有一个嵌入式Linux系统,我在我的Ubuntu上进行交叉编译。编译python时,sqlite3不在未能编译的模块列表中。
但是,该_sqlite3.so库不在同一位置,例如json.so和ctypes.so array.so ... 在Python-2.6.6 /编译/ lib.linux868-2.6/
带有init函数的实际模块等位于:Python-2.6.6/modules中的 ,它也可以在目标系统上找到。
由于这个文件丢失了,我试图使用我的arm编译器自己编译为一个共享库。这也没有用。
,而无需手动编译,以便文件:
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "rootfs/python/lib/python2.6/sqlite3/__init__.py", line 24, in <module>
File "rootfs/python/lib/python2.6/sqlite3/dbapi2.py", line 27, in <module>
ImportError: /python/lib/python2.6/lib-dynload/_sqlite3.so: cannot open shared object file: No such file or directory
与LIB-dynloads发现编译共享库:
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "rootfs/python/lib/python2.6/sqlite3/__init__.py", line 24, in <module>
File "rootfs/python/lib/python2.6/sqlite3/dbapi2.py", line 27, in <module>
ImportError: dynamic module does not define init function (init_sqlite3)
编辑: 我在想,如果我有编为正确的库sqlite3的。据我了解,_sqlite3.so是python构建器所做的,而libsqlite3.so是它需要构建它的库?而libsqlite3.so是由Sqlite3源代码构建的。我错了吗?
任何拥有更多嵌入式Linux或Python体验的人都知道我在这里做错了什么?
我的系统是指嵌入式系统还是主机系统?无论如何,目前,我已经在我的主机系统上开发了sqlite3,包括开发文件。在目标系统上,我在构建python之前构建sqlite3,并且将虚拟文件系统的安装目录包含到sqlite模块编译searchdirs中。我将不得不看看这个easy_install在makefile上是否可用。 – Gjordis
目标系统当然。 –
是的,我先在目录结构上安装sqlite3,后来进入system.img – Gjordis