Как установить писклит?

Я пытаюсь установить 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

И если я наберу «какой sqlite3», я получу:

/usr/bin/sqlite3

Я видел похожий вопрос здесь. Ответ был «вам нужен sqlite3-dev». Но, даже если это так, как проверить, есть ли у меня sqlite3-dev. А если у меня его нет, как его получить?

Может ли кто-нибудь помочь мне с этой проблемой.

Заранее спасибо.


person Verrtex    schedule 19.09.2009    source источник
comment
Если я наберу sys.version в сеансе Python, я получу: «2.4.3 (# 1, 21 января 2009 г., 01:11:33) \n[GCC 4.1.2 20071124 (Red Hat 4.1.2-42)]». Значит ли это, что у меня версия 2.4.3 и у меня нет возможности использовать SQLite с этой версией?   -  person Verrtex    schedule 19.09.2009
comment
Я не настаиваю на том, чтобы составить его самостоятельно. На самом деле, я не знаю, нужно ли мне компилировать. Я тоже не умею компилировать.   -  person Verrtex    schedule 19.09.2009
comment
Я не знаю, использует ли моя система пакет RPM (я никогда не использовал 'yum', вероятно, потому, что я никогда ничего не устанавливал).   -  person Verrtex    schedule 19.09.2009
comment
tinkertim, я не понял. Вы говорите, что в системе, использующей пакеты RPM, и в большинстве систем на основе Debian имя пакета одинаковое (sqlite3-devel)? В любом случае, даже если я знаю имя пакета, как мне его использовать? Должен ли я установить пакет? Если да, то как мне это сделать? Более того, у меня нет прав администратора на компьютере. Будет ли это проблемой?   -  person Verrtex    schedule 19.09.2009


Ответы (11)


как проверить, есть ли у меня 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, потому что думаю, что могут быть задействованы и другие подобные файлы.

Конечно, если необходимо проверить ваш дистрибутив внутри файла или программы, чтение этого файла (или файлов) и поиск определенного содержимого также будет вполне осуществимым; но для информирования потенциальных помощников о том, какой дистрибутив вы используете, cat в командной строке будет вполне достаточно ;-).

person Alex Martelli    schedule 19.09.2009
comment
В ПОРЯДКЕ. Чем я могу узнать свой дистрибутив Linux? - person Verrtex; 19.09.2009
comment
@Verrtex, отредактировал мой ответ, чтобы дать совет по этому вашему новому вопросу. - person Alex Martelli; 19.09.2009
comment
Моя система говорит мне: выпуск CentOS 5.3 (Final). - person Verrtex; 19.09.2009
comment
Для CentOS 5.3 попробуйте, например. инструкции здесь: tuxmark.blogspot.com/ 2009/07/build-python-26-on-centos-53.html, который должен предоставить вам Python 2.6 (включая sqlite и многое другое). (У меня нет установки CentOS 5.3, чтобы проверить эти инструкции, но на первый взгляд они кажутся правильными). - person Alex Martelli; 19.09.2009

Для дистрибутивов Debian я исправил эту проблему с помощью

sudo apt-get install libsqlite3-dev
person user259297    schedule 02.10.2013

Мне удалось устранить ту же ошибку сборки, установив пакет sqlite-devel:

sudo yum install sqlite-devel
person matthughes404    schedule 29.08.2013
comment
есть что-то подобное для винды? - person Ankush Rathi; 30.05.2017
comment
@AnkushRathi: существуют пакеты Python и Sqlite для Chocolatey (менеджер пакетов Windows), но я не уверен, что они помогут. - person matthughes404; 23.08.2017

У меня была такая же проблема, я использую python 2.4, ни sqlite3-dev, ни libsqlite3-dev недоступны для CentOS.

yum install python-devel

кажется решает проблему.

person migueltonic    schedule 22.10.2010

Какая у вас версия Python? SQLite интегрирован в Python с версии 2.5:

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

Если вы настаиваете на его самостоятельной компиляции, пакет называется sqlite3-devel, вы можете найти его, например. здесь

person Benjamin Wohlwend    schedule 19.09.2009
comment
Если я наберу sys.version в сеансе Python, я получу: «2.4.3 (# 1, 21 января 2009 г., 01:11:33) \n[GCC 4.1.2 20071124 (Red Hat 4.1.2-42)]». Значит ли это, что у меня версия 2.4.3 и у меня нет возможности использовать SQLite с этой версией? - person Verrtex; 19.09.2009
comment
Я не настаиваю на том, чтобы составить его самостоятельно. На самом деле, я не знаю, нужно ли мне компилировать. Я тоже не умею компилировать. - person Verrtex; 19.09.2009
comment
@Verrtex, возможно собрать sqlite для Python 2.4 (хотя установка и использование более поздней версии Python также имеет другие преимущества - не перезаписывайте версию, поставляемую системой, это может сломать некоторые вещи, но установка более новая версия например, в /usr/local все в порядке). - person Alex Martelli; 19.09.2009

Вы можете использовать yum или apt-get вместо первого типа:

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

вы получите что-то вроде python-sqlite3dbm.noarch

затем введите:

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

таким образом, ваша ОС установит все, что вам нужно, и вы не получите ошибок

person Dan    schedule 09.04.2012

У меня были следующие ошибки компиляции в 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

person Sergey    schedule 05.05.2011

Я тот, кто ответил на другой вопрос :) В системах, использующих пакеты RPM, то есть вы обычно используете «yum» для установки, пакет называется sqlite3-devel.

В большинстве систем на основе Debian (т. е. вы используете apt-get для установки пакетов) пакет называется sqlite3-dev.

Это очень типичная разница между ними, большинство других пакетов следуют тому же соглашению об именах.

person Tim Post♦    schedule 19.09.2009
comment
Я не знаю, использует ли моя система пакет RPM (я никогда не использовал 'yum', вероятно, потому, что я никогда ничего не устанавливал). - person Verrtex; 19.09.2009
comment
Я не получил. Вы говорите, что в системе, использующей пакеты RPM, и в большинстве систем на основе Debian имя пакета одинаковое (sqlite3-devel)? В любом случае, даже если я знаю имя пакета, как мне его использовать? Должен ли я установить пакет? Если да, то как мне это сделать? Более того, у меня нет прав администратора на компьютере. Будет ли это проблемой? - person Verrtex; 19.09.2009

У меня была такая же проблема с ошибкой gcc с Ubuntu Karmic. Я исправил это, установив пакет python-dev. В моем случае я работаю с python2.4, поэтому установил пакет python2.4-dev. Пакет python-dev должен работать для python2.6.

person Community    schedule 10.05.2010

Вы установили python sqlite lib?

sudo apt-get install python-sqlite
person sudeepdino008    schedule 04.09.2012

вам необходимо установить плагин в 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
person James Lee    schedule 30.07.2018