2011-12-25 23 views
7

Mam tylko zainstalowany Python 3.2.2 na Ubuntu 10.04.3 (po wszystkich instraction z pliku readme) i próbował importować modułu sqlite3 - wynik:Python 3.2: Nie można zaimportować modułu sqlite3

No module named _sqlite3 

Potem zajrzałem do katalogu lib-dynload i jest tam brak pliku _sqlite3.so (ale jest w python 2.6).

Jak rozwiązać ten problem?

Dzięki!

+0

Prawdopodobnie inny pakiet Pythona 3 Sqlite. Biblioteki Python 2 i Python 3 są niekompatybilne. –

+0

Aby wyjaśnić - skompilowałeś kod źródłowy, zamiast wyciągać go z repozytorium? – Makoto

+0

Proces instalacji: 1) './Configure' 2)' make' 3) 'make test' 4)' sudo make install' –

Odpowiedz

9

Jeśli zainstalowałeś ze źródła, musisz zainstalować biblioteki programistyczne dla sqlite3.

sudo apt-get install libsqlite3-dev 

Prawdopodobnie również chcesz zainstalować libreadline-dev i libssl-dev.

+1

Czy mogę to zrobić po zainstalowaniu Pythona lub muszę go ponownie zainstalować? –

+1

Będziesz musiał przekompilować. – casevh

+0

@casevh Jak rekompilować już zainstalowany Python 3.2.2? –

8

pobierania pyton 3.3.2http://www.python.org/getit/

development libraries sqlite3 (i inne moduły, jak readline, SSL, etc.) need to be installed before compiling Python from source. kod źródłowy C modułu sqlite Pythonie jest dołączone źródło Pythona; wymaga to jednak kompilacji pliku rozwojowego sqlite3. To nie jest oddzielna biblioteka, ale część Pythona.

Jeśli zainstalowałeś z źródła, musisz zainstalować biblioteki programistyczne dla sqlite3.

sudo apt-get install libsqlite3-dev 

Jakie są pakietów/bibliotek należy zainstalować przed kompilacją Pythona ze źródeł? 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 typowych środowisk 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 

zainstalować Pythona

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

My Python 3.4.1 miał ten sam problem na ubuntu 12.04, gdy używam SQLAlchemy library. Powodem było to, co sugerowały inne osoby związane z tym pytaniem, mój system nie miał pakietu rozwojowego zainstalowanego przed skompilowaniem i zainstalowaniem Pythona 3.4.1. Tak zrobiłem:

sudo apt-get install libsqlite3-dev 

Następnie poszedłem do mojego wyodrębnionego źródła pythona i wykonałem ponowną kompilację jako kroki opisane w odpowiedziach na to pytanie. Potem udało mi się:

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

sqlite3 nie jest częścią pakietu „python”, można zainstalować go z portu : Bazy danych/PY-sqlite3. Ponieważ nie ma konkretnych wersji python3 z , które wymagają portów, musisz ustawić PYTHON_VERSION = python3.5 przed budowaniem. Wersje pakietu zarówno 2.x, jak i 3.x mogą współistnieć pokojowo.

make-C/usr/porty/bazy/PY-sqlite3 PYTHON_VERSION = 3,5 instalacji

Powiązane problemy