如何安装pysqlite?

时间:2009-09-19 15:55:10

标签: python linux sqlite gcc pysqlite

我正在尝试安装pysqlite(SQLite的Python接口)。我用包(pysqlite-2.5.5.tar.gz)下载了该文件。我做了以下事情:

gunzip pysqlite-2.5.5.tar.gz
tar xvf pysqlite-2.5.5.tar
\cd pysqlite-2.5.5
python setup.py install

在最后一步我遇到了问题。我收到以下错误消息:

error: command 'gcc' failed with exit status 1

I found that other peoples also had this problem

据我所知,这个人有问题,因为没有安装sqlite2。但在我的情况下,我有sqlite3(我可以从命令行运行它。)

可能我应该更改"setup.cfg"中的某些路径?目前我在那里:

#define=
#include_dirs=/usr/local/include
#library_dirs=/usr/local/lib
libraries=sqlite3
define=SQLITE_OMIT_LOAD_EXTENSION

如果我输入“which sqlite3”,我会得到:

/usr/bin/sqlite3

我在这里看到了类似的问题。答案是“你需要sqlite3-dev”。但是,即使是这种情况,如何检查我是否sqlite3-dev。如果我没有它如何得到它?

任何人都可以帮我解决这个问题。

提前谢谢你。

11 个答案:

答案 0 :(得分:10)

对于Debian发行版我用

解决了这个问题
sudo apt-get install libsqlite3-dev

答案 1 :(得分:6)

我能够通过安装sqlite-devel包解决相同的构建错误:

sudo yum install sqlite-devel

答案 2 :(得分:4)

我遇到了同样的问题,我使用的是python 2.4,sqlite3-devlibsqlite3-dev都不适用于CentOS。

yum install python-devel

似乎解决了这个问题。

答案 3 :(得分:3)

  

如何检查我是否有“sqlite3-dev”

这完全取决于你正在使用的Linux发行版 - 它是Fedora,Suse,Ubuntu,Gentoo,Mandrake,还是那些中的其他几个;有几种包装策略和工具用于检查哪些包在那里,获得更多,等等。

因此,在没有指定感兴趣的分布的情况下,永远不要在Linux上询问有关检查,获取或调整软件包的问题 - 这使得提供精确,特定的帮助基本上不可能。

编辑:我知道获取有关Linux发行版的详细信息的最简单方法(适用于我手边的所有内容,但我没有特别宽的数组...... ; - ):

$ cat /etc/*-release
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.2"
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
...etc, etc...

这可能是文件/etc/lsb-release的内容,但我建议*-release,因为我认为可能还有其他一些此类文件。

当然,如果需要检查您的发行版适用于文件或程序,读取此文件(或文件)和查找特定内容也是非常可行的;但是为了告知潜在帮助者你正在使用什么发行版,shell提示符下的cat将足够了; - )。

答案 4 :(得分:2)

你有什么版本的Python?从2.5开始,SQLite集成在Python中:

http://docs.python.org/library/sqlite3.html

如果您坚持自己编译,那么该软件包名为sqlite3-devel,您可以找到它,例如: here

答案 5 :(得分:2)

您可以使用yum或apt-get代替 第一种类型:

    sudo yum(or apt-get) search python-sqlite3

你会得到类似python-sqlite3dbm.noarch

的东西

然后输入:

    sudo yum(or apt-get) install python-sqlite3dbm.noarch

这样你的操作系统就可以安装你需要的所有内容而且不会出现错误

答案 6 :(得分:1)

我在 CentOS版本5.6

上遇到了编译错误
src/cache.h:34: error: expected specifier-qualifier-list before 'PyObject_HEAD'
src/cache.h:44: error: expected specifier-qualifier-list before 'PyObject_HEAD'
src/cache.h:61: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pysqlite_NodeType'
src/cache.h:62: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pysqlite_CacheType'
src/cache.h:64: error: expected declaration specifiers or '...' before 'PyObject'
src/cache.h:64: error: expected declaration specifiers or '...' before 'PyObject'
src/cache.h:67: error: expected declaration specifiers or '...' before 'PyObject'
src/cache.h:67: error: expected declaration specifiers or '...' before 'PyObject'

安装 python-devel 也帮助了我:

yum install python-devel

答案 7 :(得分:0)

我是回答另一个问题的人:)在使用RPM软件包的系统上,即你通常使用'yum'来安装东西,该软件包名为sqlite3-devel。

在大多数基于Debian的系统上(即使用apt-get安装软件包),该软件包名为sqlite3-dev。

这是两者之间非常典型的差异,大多数其他包遵循相同的命名约定。

答案 8 :(得分:0)

我遇到了与Uccntu Karmic失败的gcc一样的麻烦。我通过安装python-dev包修复了这个问题。就我而言,我正在使用python2.4,所以我安装了python2.4-dev软件包。 python-dev包应该适用于python2.6。

答案 9 :(得分:0)

你安装了python sqlite lib吗?

sudo apt-get install python-sqlite

答案 10 :(得分:0)

您需要在http://yum.baseurl.org/download/yum-metadata-parser/

中安装插件
wget -c "http://yum.baseurl.org/download/yum-metadata-parser/yum-metadata-parser-1.1.4.tar.gz"

然后安装

tar zxf yum-metadata-parser-1.1.4.tar.gz && cd yum-metadata-parser-1.1.4
/path/to/python setup.py install