it-swarm.com.de

Kein Modul mit dem Namen _sqlite3

Ich versuche eine Django - App auf meiner VPS auszuführen, auf der Debian ausgeführt wird. 5. Wenn ich eine Demo-App starte, wird diese Fehlermeldung angezeigt:

  File "/usr/local/lib/python2.5/site-packages/Django/utils/importlib.py", line 35, in     import_module
    __import__(name)

  File "/usr/local/lib/python2.5/site-packages/Django/db/backends/sqlite3/base.py", line 30, in <module>
    raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc)

ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that     order): No module named _sqlite3

Bei der Python-Installation wird derselbe Fehler angezeigt:

Python 2.5.2 (r252:60911, May 12 2009, 07:46:31) 
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3
>>>

Beim Lesen im Web erfahre ich, dass Python 2.5 alle erforderlichen SQLite - Wrapper enthalten sollte. Muss ich Python neu installieren oder gibt es eine andere Möglichkeit, dieses Modul zum Laufen zu bringen? 

90

Ich hatte das gleiche Problem (python2.5 von der Quelle auf Ubuntu Lucid), und import sqlite3 warf dieselbe Ausnahme. Ich habe libsqlite3-dev vom Paketmanager installiert, python2.5 neu kompiliert und der Import funktionierte.

73
Emilien

Es scheint, dass Ihr Makefile nicht die entsprechende .so-Datei enthielt. Sie können dieses Problem mit den folgenden Schritten beheben:

  1. sqlite-devel (oder libsqlite3-dev auf einigen Debian-basierten Systemen) installieren
  2. Python mit ./configure --enable-loadable-sqlite-extensions && make && Sudo make install neu konfigurieren und neu kompilieren

Hinweis

Der Sudo make install-Teil legt diese Python-Version als systemweiten Standard fest, was unvorhergesehene Folgen haben kann. Wenn Sie diesen Befehl auf Ihrer Workstation ausführen, müssen Sie wahrscheinlich neben den vorhandenen Python installieren. Dies kann mit Sudo make altinstall erfolgen.

67
jammyWolf

Das habe ich getan, damit es funktioniert.

Ich benutze Pythonbrew (der Pip verwendet) mit installiertem Python 2.7.5.

Ich habe zuerst getan, was Zubair (oben) gesagt hat, und diesen Befehl ausgeführt:

Sudo apt-get install libsqlite3-dev

Dann habe ich diesen Befehl ausgeführt:

pip install pysqlite

Dies behebte das Datenbankproblem und ich bekam eine Bestätigung, als ich lief:

python manager.py syncdb
18
Joe

Ich hatte das gleiche Problem mit Python 3.5 unter Ubuntu, während ich pyenv verwendete.

Wenn Sie den Python mit pyenv installieren, wird er als eines der common Build-Probleme aufgelistet. Um dies zu beheben, entfernen Sie die installierte Python-Version, installieren Sie die Anforderungen (für diesen speziellen Fall libsqlite3-dev) und installieren Sie die Python-Version erneut. 

15
Tiny Instance
  1. Installieren Sie das sqlite-devel-Paket:

    yum install sqlite-devel -y

  2. Kompiliere Python aus der Quelle:

    ./configure
    make
    make altinstall
    
11
John Zhang

Mein _sqlite3.so befindet sich in /usr/lib/python2.5/lib-dynload/_sqlite3.so. Ausgehend von Ihren Pfaden sollten Sie die Datei /usr/local/lib/python2.5/lib-dynload/_sqlite3.so haben.

Versuche Folgendes:

find /usr/local -name _sqlite3.so

Wenn die Datei nicht gefunden wird, liegt möglicherweise ein Fehler bei Ihrer Python-Installation vor. Wenn dies der Fall ist, stellen Sie sicher, dass sich der Pfad, in dem er installiert ist, im Python-Pfad befindet. In der Python-Shell

import sys
print sys.path

In meinem Fall ist /usr/lib/python2.5/lib-dynload in der Liste, so dass es in der Lage ist, /usr/lib/python2.5/lib-dynload/_sqlite3.so zu finden.

9
Glenn Maynard

Ich habe vor kurzem versucht, Python 2.6.7 auf meinem Ubuntu 11.04-Desktop für einige Entwicklungsarbeiten zu installieren. Kam über ähnliche Probleme zu diesem Thread. Ich habe mich beschwert, um das Problem zu beheben:

  1. Passen Sie die Datei setup.py so an, dass sie den korrekten Pfad der sqlite dev enthält. Code-Snippet aus setup.py:

    def sqlite_incdir:
    sqlite_dirs_to_check = [
    os.path.join(sqlite_incdir, '..', 'lib64'),
    os.path.join(sqlite_incdir, '..', 'lib'),
    os.path.join(sqlite_incdir, '..', '..', 'lib64'),
    os.path.join(sqlite_incdir, '..', '..', 'lib'),
    '/usr/lib/x86_64-linux-gnu/'
    ]
    

    Mit dem Bit, das ich hinzugefügt habe, heißt '/ usr/lib/x86_64-linux-gnu /'.

  2. Nach dem Ausführen von make habe ich keine Warnungen erhalten, die besagen, dass die sqlite-Unterstützung nicht erstellt wurde (d. H., Es wurde korrekt erstellt: P), aber nach dem Ausführen von make install importierte sqlite3 immer noch nicht das gleiche "ImportError: No module named _sqlite3" whe running "import sqlite3".

    Die Bibliothek wurde zwar kompiliert, aber nicht in den korrekten Installationspfad verschoben. Daher habe ich die .so-Datei kopiert (cp /usr/src/python/Python-2.6.7/build/lib.linux-x86_64-2.6/_sqlite3.so /usr/local/python-2.6.7/lib/python2.6/sqlite3/ - dies sind meine Buildpfade, die Sie wahrscheinlich an Ihre Konfiguration anpassen müssen).

Voila! Die Unterstützung von SQLite3 funktioniert jetzt.

7
foomip

Das hat in Redhat Centos 6.5 für mich funktioniert:

yum install sqlite-devel
pip install pysqlite
5
ehsan88

Ich habe viele Leute gefunden, die auf dieses Problem stoßen, weil die Multi-Version von Python auf meinem eigenen vps (Cent os 7 x64) auf folgende Weise gelöst wurde:

  1. Suchen Sie die Datei "_sqlite3.so" 

    find / -name _sqlite3.so
    

    out: /usr/lib64/python2.7/lib-dynload/_sqlite3.so

  2. Finden Sie das Verzeichnis der Python-Standardbibliothek, das Sie verwenden möchten.

    für mich /usr/local/lib/python3.6/lib-dynload

  3. Kopieren Sie die Datei:

    cp   /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
    

Endlich wird alles in Ordnung sein.

5
Ehco

Ich habe das Problem in FreeBSD 8.1:

- No module named _sqlite3 -

Es wird von Stand der Port gelöst ----------

/usr/ports/databases/py-sqlite3

danach sieht man:

OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'
2
george

sqlite3 wird mit Python geliefert. Ich hatte auch das gleiche Problem, ich habe gerade python3.6 deinstalliert und erneut installiert.

Vorhandenen Python deinstallieren:

Sudo apt-get remove --purge python3.6

Installieren Sie python3.6:

Sudo apt install build-essential checkinstall
Sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
Sudo make altinstall
2

Überprüfen Sie Ihre Datei settings.py . Haben Sie nicht einfach "sqlite" anstelle von "sqlite3" für die Datenbank-Engine geschrieben?

1
myselfhimself

Ist das Paket python-pysqlite2 installiert?

Sudo apt-get install python-pysqlite2
0
bryan

Ich habe das gleiche Problem, nichts hat für mich aus den oben genannten Gründen funktioniert, aber jetzt habe ich es behoben

einfach python.pip und sqlite3 entfernen und neu installieren

  1. Sudo apt-get remove python.pip
  2. Sudo apt-get remove sqlite3

jetzt installieren Sie es erneut

  1. Sudo apt-get install python.pip
  2. Sudo apt-get install sqlite3

in meinem Fall zeigte sich bei der Installation von sqlite3 wieder ein Fehler Dann gab ich ein 

  1. sqlite3 

auf dem Terminal, um zu überprüfen, ob es entfernt wurde oder nicht und es begann mit dem Auspacken

sobald der sqlite3 installiert ist fireup terminal und schreiben

  1. sqlite3
  2. database.db (um eine Datenbank zu erstellen)

Ich bin mir sicher, dass dir das definitiv helfen wird

0
tosky

sie müssen sich in Centos oder Redhat befinden und den Python selbst kompilieren

curl -sk https://Gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1
0
wolfkdy