No se puede importar SQLite con Python 2.6

Estoy ejecutando Python 2.6 en Unix y cuando ejecuto el indicador interactivo (se supone que SQLite está preinstalado) me sale:

[root@idev htdocs]# python Python 2.6 (r26:66714, Oct 23 2008, 16:25:34) [GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sqlite Traceback (most recent call last): File "", line 1, in  ImportError: No module named sqlite >>> 

¿Cómo resuelvo esto?

El error:

 ImportError: No module named _sqlite3 

significa que SQLite 3 no encuentra la biblioteca compartida asociada. En Mac OS X es _sqlite3.so y debería ser igual en otros sistemas Unix.

Para resolver el error, debe ubicar la biblioteca _sqlite3.so en su computadora y luego revisar su PYTHONPATH para esta ubicación de directorio.

Para imprimir la ruta de búsqueda de Python, ingrese lo siguiente en el shell de Python:

 import sys print sys.path 

Si falta el directorio que contiene su biblioteca, puede intentar agregarlo interactivamente con

 sys.path.append('/your/dir/here') 

y prueba

 import sqlite3 

otra vez. Si esto funciona, debe agregar este directorio permanentemente a su variable de entorno PYTHONPATH.

PD: Si falta la biblioteca, debe (re) instalar el módulo.

 import sqlite3 

sqlite3 – Interfaz DB-API 2.0 para bases de datos SQLite.

Le falta el objeto .so (objeto compartido), probablemente un paso de instalación. En mi instalación de Linux Python, _sqlite3 está en:

 ${somewhere}/lib/python2.6/lib-dynload/_sqlite3.so 

Python 2.6 detecta dónde se instalan los encabezados de desarrollo de sqlite3, y omitirá silenciosamente la construcción _sqlite3 si no está disponible. Si está comstackndo desde la fuente, instale sqlite3 incluyendo los encabezados de desarrollo. En mi caso, sudo yum install sqlite-devel solucionó esto en un CentOS 4.7. Luego, reconstruye Python desde el código fuente.

Prueba esto:

 from pysqlite2 import dbapi2 as sqlite 

En mi sistema _sqlite3.so ubicado en:

 '/usr/lib/python2.6/lib-dynload/_sqlite3.so' 

Comprueba que el directorio está en tu sys.path :

 >>> import sys; print(filter(lambda p: 'lib-dynload' in p, sys.path)) ['/usr/lib/python2.6/lib-dynload'] 

¿Eso soluciona tu problema?

 Python 2.5.4 (r254:67916, May 31 2009, 16:56:01) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sqlite Traceback (most recent call last): File "", line 1, in  ImportError: No module named sqlite >>> import sqlite3 >>> 

El 2.5.5. El puerto de Mac de Python 2.5 ahora tiene esta sugerencia:

 "py25-sqlite3 @2.5.4 (python, databases) This is a stub. sqlite3 is now built with python25" 

Y así, una actualización del puerto python25 @2.5.5_0 a python25 @2.5.5_0 hizo que la importación volviera a funcionar. Dado que sqlite3 está entre las dependencias de python25, se construye de nuevo al actualizar python25. Así,

 $ sudo port upgrade python25 

Hace el truco en Mac OS X, colección de puertos.

Me enfrento al mismo problema. Pasos a resolver.

  1. Descarga la última versión de sqlite3 del sitio web de sqlite. sqlite-autoconf *
  2. Instala eso en 3 simples pasos
    1. ./configura
    2. hacer
    3. hacer instalar
  3. Reconstruye el python make make install