2009-09-24 4 views
1

Я пытаюсь установить pysqlite и иметь проблемы с этим. Я выяснил, что наиболее вероятной причиной этого является отсутствие заголовков sqlite, и я должен их установить. Моя платформа: CentOS версии 5.3 (Final). У меня есть Python-2.6.2.Как обращаться с пакетами программного обеспечения?

Я также узнал, что мне нужны файлы .rpm. Что касается их, я выполняю:

rpm -i sqlite3-devel-3.n.n.n.rpm 

и все должно быть хорошо.

Однако я не знаю, где найти файл sqlite3-devel-3.n.n.n.rpm. Должна ли она быть в моей системе? Я не смог найти его с помощью «locate sqlite3-devel-3». Должен ли я скачать этот файл? Если да, где я могу найти его и какую версию использовать? Я имею в виду, что файл .rpm должен, вероятно, соответствовать версии sqlite, которая есть у меня на моем компьютере? Если это так, как я могу узнать версию моего sqlite?

Если я типа "от pysqlite2 импорта dbapi2 как SQLite" я получаю:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
ImportError: No module named pysqlite2 

"ням поиск pysqlite" дает мне следующее:

Loaded plugins: fastestmirror 
Excluding Packages in global exclude 
list Finished 
==== Matched: pysqlite ==== python-sqlite.x86_64 : Python bindings 
for sqlite. 

Кстати, я следующий каталог: /home/myname/opt/lib/python2.6/sqlite3 и там у меня есть следующие файлы:

dbapi2.py dbapi2.pyc dbapi2.pyo 
dump.py dump.pyc dump.pyo 
__init__.py __init__.pyc __init__.pyo test 

Если я типа «импорт UnitTest», а затем «импорт sqlite3 как SQLite» я получаю:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/home/myname/opt/lib/python2.6/sqlite3/__init__.py", line 24, in <module> 
    from dbapi2 import * File "/home/myname/opt/lib/python2.6/sqlite3/dbapi2.py", 
line 27, in <module> 
    from _sqlite3 import * ImportError: No module named _sqlite3 

Спасибо заранее.

ответ

2

Вы можете использовать buildout для создания локализованной версии вашего проекта. Это позволит установить все необходимые пакеты без доступа к серверу sudo.

Чтобы дать ему попробовать, сделайте следующее:

mkdir tmp 
cd tmp 
wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py 
python bootstrap.py init 
vim buildout.cfg 

Редактировать buildout.cfg и заменить его следующим образом:

[buildout] 
parts = sqlite 

[sqlite] 
recipe = zc.recipe.egg 
eggs = pysqlite 
interpreter = mypython 

Теперь запустите ./bin/buildout восстановить проект. Это загрузит все необходимые пакеты и создаст для вас новый интерпретатор, который вы можете использовать для тестирования, с которым вы можете получить доступ к sqlite.

./bin/buildout 
./bin/mypython 
>>> import sqlite3 

Это дает вам контролируемую среду, которую вы можете использовать для разработки внутри. Чтобы узнать больше о buildout, вы можете смотреть видео с pycon 2009 на Setuptools, Distutils и Buildout.

Eggs and Buildout Deployment in Python - Part 1

Eggs and Buildout Deployment in Python - Part 2

Eggs and Buildout Deployment in Python - Part 3

Успехов

3

Python 2.6 (и некоторые ранее) включают sqlite Python org library ref, поэтому вам не нужно это делать. Просто импортировать его и запустить

+0

Если я типа "от pysqlite2 импорта dbapi2 как SQLite" я получаю: Traceback (самый последний вызов последнего): файл " ", строка 1, в ImportError: Нет модуля с именем pysqlite2 – Verrtex

+1

Поиск в вашем репозитории centos с использованием функции поиска yum. ня поиск pysqlite я получаю: питона-sqlite.i386 1.1.7-1.2.1 установлен Сопряган от: http://pysqlite.org/ В моей системе есть модуль, который называется sqlite3 – whatnick

+1

Когда библиотека была включен в Python, он был для sqlite3 и переименован в sqlite3 Я сомневаюсь, что вам нужен старый sqlite2 – Mark

1

Как правило, вы должны установить питон sqlite модуля через yum, что-то вроде:

yum install python-sqlite 

, а затем редактировать меняющийся sqlite2 ссылки кода sqlite3.

Кстати, всякий раз, когда вы читаете инструкции по установке sqlite3-devel-3.n.n.n.rpm, части n не являются буквальными; они должны быть заменены номерами, указывающими версию пакета rpm.

+0

Когда я использую yum «install python-sqlite», я получаю: Для выполнения этой команды вам нужно быть root , Могу ли я установить sqlite без привилегий root? – Verrtex

+1

Как правило, нет. Итак, если вы можете использовать sudo на этой машине, вы должны сделать «sudo yum install python-sqlite» и ввести свой пароль, или попросить системного администратора сделать это за вас. – tzot