我正在尝试安装pysqlite并遇到麻烦。我发现最可能的原因是缺少sqlite头文件,我必须安装它们。我的平台:CentOS版本5.3(最终版)。我有Python-2.6.2。
我还发现我需要.rpm文件。据我所知,我执行:
rpm -i sqlite3-devel-3.n.n.n.rpm
一切都应该没问题。
但是,我不知道在哪里可以找到sqlite3-devel-3.n.n.n.rpm文件。它应该已经在我的系统上吗?我找不到“locate sqlite3-devel-3”。我应该下载这个文件吗?如果是,我可以找到它,我应该使用哪个版本?我的意思是,.rpm文件可能与我在计算机上的sqlite版本一致吗?如果是这种情况,我怎样才能找到我的sqlite的版本?
如果我输入“从pysqlite2导入dbapi2作为sqlite”我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pysqlite2
“yum search pysqlite”给了我以下内容:
Loaded plugins: fastestmirror
Excluding Packages in global exclude
list Finished
==== Matched: pysqlite ==== python-sqlite.x86_64 : Python bindings
for sqlite.
顺便说一下,我有以下目录: /home/myname/opt/lib/python2.6/sqlite3 我有以下文件:
dbapi2.py dbapi2.pyc dbapi2.pyo
dump.py dump.pyc dump.pyo
__init__.py __init__.pyc __init__.pyo test
如果我输入“import unittest”然后“将sqlite3导入为sqlite”,我会得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/myname/opt/lib/python2.6/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import * File "/home/myname/opt/lib/python2.6/sqlite3/dbapi2.py",
line 27, in <module>
from _sqlite3 import * ImportError: No module named _sqlite3
提前谢谢。
答案 0 :(得分:3)
Python 2.6(以及之前的一些)包括sqlite Python org library ref,因此您不需要这样做。只需导入并运行
即可答案 1 :(得分:2)
您可以使用buildout创建项目的本地化版本。这将安装所有必需的软件包,而无需sudo访问服务器。
要试一试,请执行以下操作:
mkdir tmp
cd tmp
wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py
python bootstrap.py init
vim buildout.cfg
编辑buildout.cfg并将其替换为以下内容:
[buildout]
parts = sqlite
[sqlite]
recipe = zc.recipe.egg
eggs = pysqlite
interpreter = mypython
现在,运行./bin/buildout重建项目。这将下载所有必需的包并为您创建一个新的解释器,您可以使用可以访问sqlite的测试。
./bin/buildout
./bin/mypython
>>> import sqlite3
这为您提供了一个可以用来开发内部的受控环境。 要了解有关buildout的更多信息,您可以在Setuptools,Distutils和Buildout上观看来自pycon 2009的视频。
Eggs and Buildout Deployment in Python - Part 1
祝你好运答案 2 :(得分:1)
通常,您应该通过sqlite
安装python yum
模块,例如:
yum install python-sqlite
然后修改代码,将sqlite2
引用更改为sqlite3
。
顺便说一句,每当您阅读安装sqlite3-devel-3.n.n.n.rpm
的说明时,n
部分都不是字面的;它们应该被替换为指定rpm包版本的数字。