2011-12-25 13 views
7

Ho appena installato python 3.2.2 su Ubuntu 10.04.3 (dopo tutto instraction da file readme) e ha cercato di importare il modulo sqlite3 - il risultato:Python 3.2: non si può importare il modulo sqlite3

No module named _sqlite3 

Quindi ho esaminato la directory lib-dynload e non c'è nessun file _sqlite3.so (ma è in python 2.6).

Come risolvere questo problema?

Grazie!

+0

C'è probabilmente pacchetto differente per Python 3 SQLite. Le librerie Python 2 e Python 3 non sono compatibili. –

+0

Giusto per chiarire: hai compilato il codice sorgente invece di estrarlo dal repository? – Makoto

+0

Installazione processo: 1) './Configure' 2)' make' 3) 'make test' 4)' sudo make install' –

risposta

9

Se è stato installato dal sorgente, è necessario installare le librerie di sviluppo per sqlite3.

sudo apt-get install libsqlite3-dev 

Probabilmente anche desidera installare libreadline-dev e libssl-dev.

+1

Posso farlo dopo aver installato Python o devo reinstallarlo? –

+1

Sarà necessario ricompilare. – casevh

+0

@casevh Come ricompilare Python 3.2.2 già installato? –

8

Scarica pitone 3.3.2http://www.python.org/getit/

Il development libraries per sqlite3 (e altri moduli come readline, SSL, ecc) need to be installed before compiling Python from source. Il codice sorgente C per il modulo sqlite Python è incluso con sorgente di Python; tuttavia richiede la presenza del file di sviluppo di sqlite3 per la compilazione. Non è una libreria separata ma parte di Python.

Se è stato installato dal sorgente, è necessario installare le librerie di sviluppo per sqlite3.

sudo apt-get install libsqlite3-dev 

Quali sono i pacchetti/librerie devo installare prima di compilare Python dai sorgenti? 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 

Elenco degli ambienti comuni dev ...

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 

Installare Python

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

mio Python 3.4.1 ha avuto lo stesso problema su ubuntu 12.04, quando uso SQLAlchemy library. Il motivo era come suggerivano le altre persone in relazione a questa domanda, il mio sistema non aveva il pacchetto di sviluppo installato prima di compilare e installare python 3.4.1. Così ho fatto:

sudo apt-get install libsqlite3-dev 

E poi andato alla mia sorgente Python estratto e fatto ri-compliation come i passaggi descritti nelle risposte a questa domanda. Poi sono stato in grado di:

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

sqlite3 non è parte del pacchetto "python", è possibile installarlo da porto: database/py-sqlite3. Poiché non esistono specifiche versioni python3 di , le porte devono essere impostate su PYTHON_VERSION = python3.5 prima di essere costruite. Le versioni 2.x e 3.x di pacchetto possono coesistere pacificamente.

make -C/usr/ports/database/py-sqlite3 PYTHON_VERSION = 3.5 installare

Problemi correlati