Ich versuche, eine Django- App auf meinem VPS unter Debian 5 auszuführen. Wenn ich eine Demo-App ausführe, wird der folgende Fehler 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 der gleiche 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
>>>
Wenn ich im Web lese, erfahre ich, dass Python 2.5 mit allen erforderlichen SQLite- Wrappern geliefert werden sollte. Muss ich Python neu installieren oder gibt es eine andere Möglichkeit, dieses Modul zum Laufen zu bringen?
python
sqlite
debian
python-import
Alexander van Dijk
quelle
quelle
Antworten:
Es scheint, dass Ihr Makefile nicht die entsprechende
.so
Datei enthielt . Sie können dieses Problem mit den folgenden Schritten beheben:sqlite-devel
(oderlibsqlite3-dev
auf einigen Debian-basierten Systemen)./configure --enable-loadable-sqlite-extensions && make && sudo make install
Hinweis
In diesem
sudo make install
Teil wird diese Python-Version als systemweiter Standard festgelegt, was unvorhergesehene Folgen haben kann. Wenn Sie diesen Befehl auf Ihrer Workstation ausführen, möchten Sie ihn wahrscheinlich neben dem vorhandenen Python installieren , was mit möglich istsudo make altinstall
.quelle
sqlite-devel
? Ich bin auf einem angepassten Linux system.I gerade heruntergeladensqlite-autoconf-3100200.tar.gz
und ausgeführt./configure
,make && make install
. Nachdem ich python3 neu kompiliert habe, funktioniert es immer noch nicht.Ich hatte das gleiche Problem (Gebäude
python2.5
aus dem Quellcode auf Ubuntu Lucid) undimport sqlite3
warf die gleiche Ausnahme. Ich habelibsqlite3-dev
über den Paketmanager installiert , Python2.5 neu kompiliert und dann hat der Import funktioniert.quelle
Ich hatte das gleiche Problem mit Python 3.5 unter Ubuntu, während ich pyenv verwendete .
Wenn Sie Python mit pyenv installieren , wird es als eines der häufigsten Build-Probleme aufgeführt . 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 neu.quelle
Das habe ich getan, damit es funktioniert.
Ich verwende Pythonbrew (das Pip verwendet) mit installiertem Python 2.7.5.
Ich habe zuerst das getan, was Zubair (oben) gesagt hat, und diesen Befehl ausgeführt:
Dann habe ich diesen Befehl ausgeführt:
Dies hat das Datenbankproblem behoben und ich habe eine Bestätigung erhalten, als ich ausgeführt habe:
quelle
yum install sqlite-devel
statt der ersten Zeile.pysqlite
jetztsqlite3
in Python 3, und das können Sie nichtpip -m install
.pysqlite is not supported on Python 3. When using Python 3, use the sqlite3 module from the standard library
Installieren Sie das
sqlite-devel
Paket:yum install sqlite-devel -y
Kompilieren Sie Python aus der Quelle neu:
quelle
Mein _sqlite3.so befindet sich in /usr/lib/python2.5/lib-dynload/_sqlite3.so. Nach Ihren Pfaden zu urteilen, sollten Sie die Datei /usr/local/lib/python2.5/lib-dynload/_sqlite3.so haben.
Versuche Folgendes:
Wenn die Datei nicht gefunden wird, stimmt möglicherweise etwas mit Ihrer Python-Installation nicht. Wenn dies der Fall ist, stellen Sie sicher, dass sich der Pfad, auf dem es installiert ist, im Python-Pfad befindet. In der Python-Shell
In meinem Fall befindet sich /usr/lib/python2.5/lib-dynload in der Liste, sodass /usr/lib/python2.5/lib-dynload/_sqlite3.so gefunden werden kann.
quelle
Ich habe kürzlich versucht, Python 2.6.7 auf meinem Ubuntu 11.04-Desktop für einige Entwicklungsarbeiten zu installieren. Kam auf ähnliche Probleme wie dieser Thread. Ich habe es behoben, indem ich:
Anpassen der Datei setup.py, um den richtigen SQLite-Entwicklungspfad einzuschließen. Code-Snippet aus setup.py:
Mit dem Bit, das ich hinzugefügt habe, ist '/ usr / lib / x86_64-linux-gnu /'.
Nach dem Ausführen von make erhielt ich keine Warnungen, dass die SQLite-Unterstützung nicht erstellt wurde (dh korrekt erstellt wurde: P), aber nach dem Ausführen
make install
wurde sqlite3 immer noch nicht mit demselben importiert. "ImportError: No module named _sqlite3" whe running "import sqlite3
" .Die Bibliothek wurde also kompiliert, aber nicht in den richtigen 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 Erstellungspfade, die Sie wahrscheinlich an Ihr Setup anpassen müssen).Voila! Die SQLite3-Unterstützung funktioniert jetzt.
quelle
Ich habe festgestellt, dass viele Leute auf dieses Problem stoßen, weil ich mit der Multi-Version Python auf meinem eigenen vps (cent os 7 x64) Folgendes gelöst habe:
Suchen Sie die Datei "_sqlite3.so"
aus:
/usr/lib64/python2.7/lib-dynload/_sqlite3.so
Suchen Sie das Verzeichnis der Python-Standardbibliothek, das Sie verwenden möchten.
für mich
/usr/local/lib/python3.6/lib-dynload
Kopieren Sie die Datei:
Endlich wird alles in Ordnung sein.
quelle
ImportError: dynamic module does not define module export function (PyInit__sqlite3)
auf CentOS 7..so
py2 für py3.6.4 nicht verwendbar? @xtluoImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
Dies funktionierte für mich in Redhat Centos 6.5:
quelle
Mein Python wird aus dem Quellcode erstellt. Die Ursache sind fehlende Optionen bei der Ausführung der Python-Version: 3.7.4
Fest
quelle
Ich habe das Problem in FreeBSD 8.1:
Es wird gelöst, indem der Port steht ----------
danach kann man sehen:
quelle
Ist das Paket python-pysqlite2 installiert?
quelle
Überprüfen Sie Ihre Datei settings.py. Haben Sie nicht einfach "sqlite" anstelle von "sqlite3" für das Datenbankmodul geschrieben?
quelle
sqlite3
wird mit Python geliefert. Ich hatte auch das gleiche Problem, ich habe es nur deinstalliertpython3.6
und erneut installiert.Deinstallieren Sie vorhandene Python:
Installieren Sie python3.6:
quelle
Sie müssen in Centos oder Redhat sein und Python selbst kompilieren. Es ist Pythons Fehler. Tun Sie dies in Ihrem Python-Quellcode-Verzeichnis und tun Sie dies unten
quelle
Ich habe das gleiche Problem, nichts hat für mich von oben funktioniert und jetzt habe ich es behoben durch
einfach entfernen
python.pip
undsqlite3
und wieder installierensudo apt-get remove python.pip
sudo apt-get remove sqlite3
Installieren Sie es jetzt erneut
sudo apt-get install python.pip
sudo apt-get install sqlite3
In meinem Fall
sqlite3
zeigte sich bei der erneuten Installation ein Fehler, den ich eingabsqlite3
auf dem Terminal, um zu überprüfen, ob es entfernt wurde oder nicht und es begann es auszupacken
Sobald das
sqlite3
Fireup-Terminal installiert ist und schreibensqlite3
database.db
(um eine Datenbank zu erstellen)Ich bin sicher, das wird dir definitiv helfen
quelle
Antwort für alle, die auf dieser Seite landen und nach einer Lösung für Windows suchen:
Sie müssen pysqlite3 oder db-sqlite3 installieren, falls nicht bereits installiert. Sie können Folgendes verwenden, um zu installieren.
Für mich war das Problem mit der DLL-Datei von sqlite3.
Lösung:
Ich habe eine DLL-Datei von einer SQLite-Site genommen . Dies kann je nach Version der Python-Installation variieren.
Ich habe es in das DLL-Verzeichnis der Umgebung eingefügt. Für mich war es "C: \ Anaconda \ Lib \ DLLs", aber suchen Sie nach Ihren.
quelle
Ich war enttäuscht, dass dieses Problem bis heute besteht. Da ich kürzlich versucht habe, vCD CLI unter CentOS 8.1 zu installieren, wurde ich beim Versuch, es auszuführen, mit demselben Fehler begrüßt. Die Art und Weise, wie ich es in meinem Fall lösen musste, ist wie folgt:
Da habe ich dies getan, um einen anderen Blogpost über die Installation von vCD CLI und VMware Container Service Extension zu erstellen. Am Ende habe ich die Schritte, mit denen ich das Problem behoben habe, erfasst und in einem separaten Blog-Beitrag unter folgender Adresse abgelegt:
http://www.virtualizationteam.com/cloud/running-vcd-cli-fail-with-the-following-error-modulenotfounderror-no-module-named-_sqlite3.html
Ich hoffe, dass dies hilfreich ist, da die obigen Tipps mir zwar geholfen haben, eine Lösung zu finden, ich jedoch einige davon kombinieren und ein wenig modifizieren musste.
quelle
Laden Sie sqlite3 herunter:
Führen Sie zur Installation die folgenden Schritte aus:
quelle
Sie müssen pysqlite in Ihrer Python-Umgebung installieren :
quelle
Versuchen Sie zu kopieren,
_sqlite3.so
damit Python es finden kann.Es sollte so einfach sein wie:
Vertrau mir, versuch es.
quelle