4

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

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

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

谁能帮我解决这个问题。

先感谢您。

4

11 回答 11

10

对于 Debian 发行版,我解决了这个问题

sudo apt-get install libsqlite3-dev
于 2013-10-02T17:38:20.847 回答
6

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

sudo yum install sqlite-devel
于 2013-08-29T19:23:04.940 回答
4

我遇到了同样的问题,我使用的是 python 2.4,CentOS 既不可用,sqlite3-dev也不libsqlite3-dev可用。

yum install python-devel

似乎解决了这个问题。

于 2010-10-22T18:01:50.430 回答
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...

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

当然,如果需要在文件或程序中检查您的发行版,则读取该文件(或多个文件)并定位特定内容也是非常可行的;但是为了让潜在的帮助者知道你正在使用什么发行版,cat在 shell 提示符下就足够了;-)。

于 2009-09-19T16:17:24.887 回答
2

你有什么版本的 Python?SQLite 自 2.5 起集成在 Python 中:

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

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

于 2009-09-19T16:02:39.847 回答
2

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

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

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

然后输入:

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

这样,您的操作系统将为您安装所有您需要的东西,并且您不会出错

于 2012-04-09T04:21:43.460 回答
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也帮助了我:

百胜安装python-devel

于 2011-05-05T10:42:37.880 回答
0

我遇到了 gcc 在 Ubuntu Karmic 上失败的问题。我通过安装 python-dev 包解决了这个问题。就我而言,我正在使用 python2.4,所以我安装了 python2.4-dev 包。python-dev 包应该适用于 python2.6。

于 2010-05-10T18:17:09.940 回答
0

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

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

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

于 2009-09-19T16:12:35.543 回答
0

你安装了python sqlite lib吗?

sudo apt-get install python-sqlite
于 2012-09-04T11:42:26.127 回答
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
于 2018-07-30T15:23:46.760 回答