我不能使用sqlite3(构建python包),因为缺少_sqlite3.so
文件。我发现人们遇到了同样的问题,他们解决了这个问题here。要解决我的问题,我必须“安装sqlite3
并重新编译Python”。我还发现问题可以通过“从源代码构建并将库移动到/usr/lib/python2.5/lib-dynload/
”来解决。
正如我在这里被告知的那样,我必须从源代码安装sqlite并将新编译的文件复制到我的Python目录(没有人说过“重新编译Python”)。好吧,我已经安装了sqlite,现在我必须将一些内容复制到我的/lib-dynload/
目录。
我不确定我应该复制什么。在我的/lib-dynload/
目录中,我只有.so文件。在我的sqlite-3.6.18
中,我没有任何*.so
个文件(这让我很怀疑)。我遇到了这个问题,因为_sqlite3.so
中没有/lib-dynload/
个文件。通过编译sqlite我得到了一些新文件(例如sqlite3.o
和sqlite3.lo
)但not _sqlite3.so
。
P.S。一些细节:
1。我使用Python 2.6.2(我在本地安装)。
2。我没有root权限。
3。我已经通过root在机器上全局安装了sqlite。
4。我刚在本地安装了sqlite。
5。我的操作系统是CentOS版本5.3(最终版)。
6。当我输入Python命令行import sqlite3
时,我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/loctopu/opt/lib/python2.6/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/home/loctopu/opt/lib/python2.6/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
答案 0 :(得分:0)
我没有确切的答案,但这里的提示很少
要从源代码安装python,您不需要是root用户,可以随时在/home/USERNAME/usr
安装,例如在配置时,请执行./configure --prefix=/home/USERNAME/usr
安装sqlite二进制文件并不意味着它包含了python扩展(相反,编译python时需要sqlite dev文件)
sqlite3的正确导入用法为import sqlite3