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


如果我键入“导入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


先感谢您。

最佳答案

您可以使用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


这为您提供了可用于内部开发的受控环境。
要了解有关构建的更多信息,您可以在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

祝好运

关于python - 我应该如何处理软件包?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1471567/

10-11 07:53