我该如何处理软件包?

时间:2009-09-24 13:05:49

标签: python sqlite rpm pysqlite

我正在尝试安装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

提前谢谢。

3 个答案:

答案 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

Eggs and Buildout Deployment in Python - Part 2

Eggs and Buildout Deployment in Python - Part 3

祝你好运

答案 2 :(得分:1)

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

yum install python-sqlite

然后修改代码,将sqlite2引用更改为sqlite3

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