Estoy tratando de instalar pysqlite y tengo problemas con eso. Descubrí que la razón más probable de esto es la falta de encabezados sqlite y tengo que instalarlos. Mi plataforma: CentOS versión 5.3 (Final). Tengo Python-2.6.2.

También descubrí que necesito archivos .rpm. Por lo que tengo, ejecuto:

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

Y todo debería estar bien.

Sin embargo, no sé dónde encontrar el archivo sqlite3-devel-3.n.n.n.rpm. ¿Ya debería estar en mi sistema? No pude localizarlo con "localizar sqlite3-devel-3". ¿Debo descargar este archivo? En caso afirmativo, ¿dónde puedo encontrarlo y qué versión debo usar? Quiero decir, ¿el archivo .rpm debería ser, probablemente, consistente con la versión de sqlite que tengo en mi computadora? Si es el caso, ¿cómo puedo encontrar la versión de mi sqlite?

Si escribo "desde pysqlite2 import dbapi2 como sqlite" obtengo:

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

"yum search pysqlite" me da lo siguiente:

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

Por cierto, tengo el siguiente directorio: /home/myname/opt/lib/python2.6/sqlite3 y allí tengo los siguientes archivos:

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

Si escribo "import unittest" y luego "import sqlite3 como sqlite" obtengo:

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

Gracias de antemano.

1
Verrtex 24 sep. 2009 a las 17:05

3 respuestas

La mejor respuesta

Puede usar buildout para crear una versión localizada de su proyecto. Esto instalará todos los paquetes necesarios sin tener acceso sudo al servidor.

Para intentarlo, haga lo siguiente:

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

Edite buildout.cfg y reemplácelo con lo siguiente:

[buildout]
parts = sqlite 

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

Ahora, ejecute ./bin/buildout para reconstruir el proyecto. Esto descargará todos los paquetes necesarios y creará un nuevo intérprete para usted que puede usar test para acceder a sqlite.

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

Esto le brinda un entorno controlado que puede utilizar para desarrollarse dentro. Para obtener más información sobre la construcción, puede ver videos de pycon 2009 en Setuptools, Distutils y Buildout.

Huevos y despliegue de Buildout en Python - Parte 1

Huevos y despliegue de despliegue en Python - Parte 2

Huevos y despliegue de despliegue en Python - Parte 3

Buena suerte

2
Taras Mankovski 24 sep. 2009 a las 20:17

Por lo general, debe instalar el módulo python sqlite a través de yum, algo así como:

yum install python-sqlite

Y luego edite su código cambiando las referencias sqlite2 a sqlite3.

Por cierto, siempre que lea las instrucciones para instalar sqlite3-devel-3.n.n.n.rpm, las partes n no son literales; se supone que deben reemplazarse con números que especifiquen una versión del paquete rpm.

1
tzot 24 sep. 2009 a las 16:33

Python 2.6 (y algunos anteriores) incluyen sqlite Ref. de biblioteca de la organización Python, por lo que no debería necesitar hacer esto. Solo impórtalo y ejecuta

3
mmmmmm 24 sep. 2009 a las 13:09