繁体   English   中英

如何安装pysqlite?

[英]How to install pysqlite?

我正在尝试安装pysqlite(Python接口到SQLite)。 我用包(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

我发现其他人也有这个问题

据我所知,这个人有问题,因为没有安装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 如果我没有它如何得到它?

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

先感谢您。

对于Debian发行版,我修复了这个问题

sudo apt-get install libsqlite3-dev

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

sudo yum install sqlite-devel

我遇到了同样的问题,我使用的是python 2.4,没有sqlite3-devlibsqlite3-dev可用于CentOS。

yum install python-devel

似乎解决了这个问题。

如何检查我是否有“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就足够了;-)。

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

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

你会得到类似python-sqlite3dbm.noarch的东西

然后输入:

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

通过这种方式,您的操作系统将为您安装所需的一切,并且您不会收到错误

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

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

如果你坚持自己编译,那么这个包叫做sqlite3-devel,你可以在这里找到它

我在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

你安装了python sqlite lib吗?

sudo apt-get install python-sqlite

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

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

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

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

你需要在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM