我尝试安装pysqlite。安装过程中会出现一些可疑的东西。为什么我输入:
python setup.py build
我最后得到了以下信息:
src/module.c:286: error: ‘SQLITE_PRAGMA’ undeclared here (not in a function)
src/module.c:287: error: ‘SQLITE_READ’ undeclared here (not in a function)
src/module.c:288: error: ‘SQLITE_SELECT’ undeclared here (not in a function)
src/module.c:289: error: ‘SQLITE_TRANSACTION’ undeclared here (not in a function)
src/module.c:290: error: ‘SQLITE_UPDATE’ undeclared here (not in a function)
src/module.c:291: error: ‘SQLITE_ATTACH’ undeclared here (not in a function)
src/module.c:292: error: ‘SQLITE_DETACH’ undeclared here (not in a function)
src/module.c: In function ‘init_sqlite’:
src/module.c:419: warning: implicit declaration of function ‘sqlite3_libversion’
src/module.c:419: warning: passing argument 1 of ‘PyString_FromString’ makes pointer from integer without a cast
error: command 'gcc' failed with exit status 1
我忽略了最后一行并决定继续。所以,我打字:
python setup.py install
而且,我再次收到类似的错误消息:
src/module.c:288: error: ‘SQLITE_SELECT’ undeclared here (not in a function)
src/module.c:289: error: ‘SQLITE_TRANSACTION’ undeclared here (not in a function)
src/module.c:290: error: ‘SQLITE_UPDATE’ undeclared here (not in a function)
src/module.c:291: error: ‘SQLITE_ATTACH’ undeclared here (not in a function)
src/module.c:292: error: ‘SQLITE_DETACH’ undeclared here (not in a function)
src/module.c: In function ‘init_sqlite’:
src/module.c:419: warning: implicit declaration of function ‘sqlite3_libversion’
src/module.c:419: warning: passing argument 1 of ‘PyString_FromString’ makes pointer from integer without a cast
error: command 'gcc' failed with exit status 1
之后我想试试pysqlite是否有效。 如果在python-command-line模式下输入
from pysqlite2 import *
Python不抱怨。但是,如果我试着遵循我的书中的例子:
from pysqlite2 import dbapi2 as sqlite
我收到错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pysqlite2/dbapi2.py", line 27, in <module>
from pysqlite2._sqlite import *
ImportError: No module named _sqlite
有没有人知道它为什么会发生以及如何解决这个问题。顺便说一下,我已经安装了新版本的Python。 “python -V”给了我“Python 2.6.2”。提前感谢您的帮助。
答案 0 :(得分:3)
我忽略了最后一行并决定继续。
你不能忽略最后一行。它告诉你有一个错误,所以它无法编译。你运行的下一件事告诉你它无法安装,因为它无法编译。然后,你的python告诉你它无法运行代码,因为它没有安装。在继续安装之前,您需要使编译步骤正常工作。
答案 1 :(得分:2)
需要编译python扩展的课程,您使用哪种发行版?您似乎缺少具有给定宏定义的sqlite标头。当python安装程序运行时,它会编译绑定到sqlite本机二进制文件并将一些.py文件复制到库中。 _sqlite通常是一个.pyd文件(相当于一个dll),它调用了sqlite库,在你没有构建的情况下。
检查是否存在sqlite标题等。
答案 2 :(得分:2)
现在可以在网站上找到构建pysqlite的正确方法。
$ tar xvfz <version>.tar.gz
$ cd <version>
$ python setup.py build_static install
build_static将下载最新的sqlite代码并对其进行静态编译。我只是在1and1共享主机上执行此操作。