2011-12-25 12 views
7

que acaba de instalar Python 3.2.2 en Ubuntu 10.04.3 (después de todo instraction del archivo léame) y trató de importar el módulo del sqlite3 - el resultado:Python 3.2: no se puede importar el módulo del sqlite3

No module named _sqlite3 

Luego he buscado en el directorio lib-dynload y hay ningún archivo _sqlite3.so (pero está en python 2.6).

¿Cómo solucionar este problema?

Gracias!

+0

Probablemente hay paquete diferente para Python 3 SQlite. Las bibliotecas Python 2 y Python 3 son incompatibles. –

+0

Solo para aclarar: ¿compiló el código fuente en lugar de extraerlo del repositorio? – Makoto

+0

Proceso de instalación: 1) './Configure' 2)' make' 3) 'make test' 4)' sudo make install' –

Respuesta

9

Si instaló desde la fuente, debe instalar las bibliotecas de desarrollo para sqlite3.

sudo apt-get install libsqlite3-dev 

probablemente también quiera instalar libreadline-dev y libssl-dev.

+1

¿Puedo hacer eso después de instalar Python o tengo que volver a instalarlo? –

+1

Tendrá que volver a compilar. – casevh

+0

@casevh ¿Cómo recompilar Python 3.2.2 ya instalado? –

8

Descargar pitón 3.3.2http://www.python.org/getit/

El development libraries para sqlite3 (y otros módulos como readline, SSL, etc.) need to be installed before compiling Python from source. El código fuente C para el módulo sqlite Python se incluye con la fuente de Python; sin embargo, requiere la presencia del archivo de desarrollo de sqlite3 para compilar. No es una biblioteca separada sino parte de Python.

Si instaló desde el origen, debe instalar las bibliotecas de desarrollo para sqlite3.

sudo apt-get install libsqlite3-dev 

¿Cuáles son los paquetes/bibliotecas que debería instalar antes de compilar Python desde la fuente? https://askubuntu.com/questions/21547/what-are-the-packages-libraries-i-should-install-before-compiling-python-from-so

sudo apt-get install libreadline-dev 
sudo apt-get install libssl-dev 

Lista de los entornos dev comunes ...

build-essential (obviously) 
libz-dev  (also pretty common and essential) 
libreadline-dev (or the Python prompt is crap) 
libncursesw5-dev 
libssl-dev 
libgdbm-dev 
libsqlite3-dev 
libbz2-dev 
liblzma-dev 
tk-dev 
libdb-dev 
libncursesw5-dev 
libreadline5-dev 
libssl-dev 
libgdbm-dev 
libc6-dev 
libsqlite3-dev 

instalar Python

tar xf Python-3.3.2.tar.xz 
./configure 
make 
sudo make all install 
1

Mi Python 3.4.1 tenían el mismo problema en Ubuntu 12.04, cuando uso SQLAlchemy library. El motivo era lo que sugerían otras personas con relación a esta pregunta, mi sistema no tenía el paquete de desarrollo instalado antes de compilar e instalar Python 3.4.1. Así que lo hice:

sudo apt-get install libsqlite3-dev 

Y luego fui a mi fuente de Python se extrae y lo hizo volver a compliation como los pasos descritos en las respuestas para esta pregunta. Entonces pude:

Python 3.4.1 (default) 
[GCC 4.6.3] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sqlite3 
>>> 
0

sqlite3 no es parte del paquete de "pitón", puede instalarlo desde el puerto : bases de datos/py-sqlite3. Como no hay versiones específicas de python3 de que los puertos necesites establecer PYTHON_VERSION = python3.5 antes de construir. Ambas versiones 2.x y 3.x del paquete pueden coexistir pacíficamente.

make -C/usr/ports/bases de datos/PYTHON_VERSION py-sqlite3 = 3,5 instalación

Cuestiones relacionadas