好的,
我已经问过这个问题了,但是注意到我可能没有像我原来那样清楚,并且可能自己也犯了一些错误。
我也注意到很多人在python中遇到与sqlite3相同或类似的问题。所以我想我会尽可能清楚地问这个问题,所以它可能会帮助其他人解决同样的问题。
编译时python需要找到什么,所以模块启用并运行? (详细地说,我的意思是确切的文件,而不仅仅是“sqlite dev-files”)?
如果它需要一个库,它可能需要使用正确的架构进行编译吗?
答案 0 :(得分:0)
据我了解,您希望安装python表单源。要使 sqlite 模块可用,您必须安装 sqlite 包及其 dev文件(例如 sqlite-devel CentOS的)。而已。您必须在安装所需的软件包后重新配置源。
顺便说一句,你会遇到与其他模块相同的问题。
答案 1 :(得分:0)
cpython的sqlite模块的source code调用各种sqlite3函数并使用sqlite3结构(类似于Python中的类定义)。
在编译源代码(到python
二进制文件)时,C编译器需要这些函数的定义(例如,如果参数计数不匹配,它可以中止)。出于这个原因,Python的sqlite模块includes the sqlite3 header file sqlite3.h
包含有关sqlite3_*
函数的参数的信息(但不它们的实现)。 (More information about header files on Wikipedia)
此外,当linking python二进制文件时,链接器需要获取有关所使用的sqlite3方法和其他对象的实际二进制表示的信息。此信息位于/usr/lib
中的文件中,以.so
,.la
或.a
结尾。它们必须针对目标体系结构(即您尝试创建的二进制体系结构)进行编译 - 大多数情况下,这是当前系统的体系结构。