我正在尝试安装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
。如果我没有它如何得到它?
任何人都可以帮我解决这个问题。
提前谢谢你。
答案 0 :(得分:10)
对于Debian发行版我用
解决了这个问题sudo apt-get install libsqlite3-dev
答案 1 :(得分:6)
我能够通过安装sqlite-devel包解决相同的构建错误:
sudo yum install sqlite-devel
答案 2 :(得分:4)
我遇到了同样的问题,我使用的是python 2.4,sqlite3-dev
和libsqlite3-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