1

我正在尝试安装 pysqlite 并且遇到了麻烦。我发现最可能的原因是缺少 sqlite 标头,我必须安装它们。我的平台:CentOS release 5.3 (Final)。我有 Python-2.6.2。

我还发现我需要 .rpm 文件。就我拥有它们而言,我执行:

rpm -i sqlite3-devel-3.n.n.n.rpm

一切都应该没问题。

但是,我不知道在哪里可以找到 sqlite3-devel-3.nnnrpm 文件。它应该已经在我的系统上吗?我无法使用“locate sqlite3-devel-3”找到它。我应该下载这个文件吗?如果是,我在哪里可以找到它,我应该使用哪个版本?我的意思是,.rpm 文件可能应该与我计算机上的 sqlite 版本一致?如果是这样,我怎样才能找到我的 sqlite 的版本?

如果我输入“from pysqlite2 import dbapi2 as 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”,然后输入“import sqlite3 as 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

先感谢您。

4

3 回答 3

3

Python 2.6(和更早的版本)包含 sqlite Python org library ref,因此您不需要这样做。只需导入并运行

于 2009-09-24T13:09:18.123 回答
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 的视频。

Python 中的 Eggs 和 Buildout 部署 - 第 1 部分

Python 中的 Eggs 和 Buildout 部署 - 第 2 部分

Python 中的 Eggs 和 Buildout 部署 - 第 3 部分

祝你好运

于 2009-09-24T20:17:23.337 回答
1

通常,您应该sqlite通过 安装 python 模块yum,例如:

yum install python-sqlite

然后编辑您的代码,将sqlite2引用更改为sqlite3.

顺便说一句,每当您阅读安装sqlite3-devel-3.n.n.n.rpm说明时,这些n零件都不是字面意思;它们应该被替换为指定 rpm 包版本的数字。

于 2009-09-24T16:33:45.173 回答