Próbuję uruchomić aplikację Django na moim VPS z systemem Debian 5. Kiedy uruchamiam aplikację demonstracyjną, wraca z tym błędem:
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
Patrząc na instalację Pythona, daje ten sam błąd:
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
>>>
Czytając w Internecie, dowiaduję się, że Python 2.5 powinien zawierać wszystkie niezbędne opakowania SQLite . Czy muszę ponownie zainstalować Python, czy jest inny sposób na uruchomienie i uruchomienie tego modułu?
python
sqlite
debian
python-import
Alexander van Dijk
źródło
źródło
Odpowiedzi:
Wygląda na to, że Twój
.so
plik makefile nie zawiera odpowiedniego pliku. Możesz rozwiązać ten problem, wykonując poniższe czynności:sqlite-devel
(lublibsqlite3-dev
w niektórych systemach opartych na Debianie)./configure --enable-loadable-sqlite-extensions && make && sudo make install
Uwaga
Ta
sudo make install
część ustawi tę wersję Pythona jako standard ogólnosystemowy, co może mieć nieprzewidziane konsekwencje. Jeśli uruchomisz to polecenie na swojej stacji roboczej, prawdopodobnie będziesz chciał je zainstalować wraz z istniejącym Pythonem, co można zrobić za pomocąsudo make altinstall
.źródło
sqlite-devel
? Jestem na dostosowanym linux system.I tylko pobraćsqlite-autoconf-3100200.tar.gz
i uruchomić./configure
,make && make install
. Po ponownej kompilacji Python3 nadal nie działa.Miałem ten sam problem (budowanie
python2.5
ze źródła na Ubuntu Lucid) iimport sqlite3
rzuciłem ten sam wyjątek. Zainstalowałemlibsqlite3-dev
z menedżera pakietów, ponownie skompilowałem python2.5, a następnie import zadziałał.źródło
Miałem ten sam problem z Pythonem 3.5 na Ubuntu podczas korzystania z pyenv .
Jeśli instalujesz Pythona za pomocą pyenv , jest on wymieniony jako jeden z typowych problemów z kompilacją . Aby go rozwiązać, usuń zainstalowaną wersję Pythona, zainstaluj wymagania (dla tego konkretnego przypadku
libsqlite3-dev
), a następnie ponownie zainstaluj wersję Pythona.źródło
Oto, co zrobiłem, aby to zadziałało.
Używam Pythonbrew (który używa pip) z zainstalowanym Pythonem 2.7.5.
Najpierw zrobiłem to, co powiedział Zubair (powyżej) i uruchomiłem to polecenie:
sudo apt-get install libsqlite3-dev
Następnie uruchomiłem to polecenie:
pip install pysqlite
Naprawiło to problem z bazą danych i otrzymałem potwierdzenie, kiedy uruchomiłem:
python manager.py syncdb
źródło
yum install sqlite-devel
zamiast pierwszej linii.pysqlite
teraz jestsqlite3
w Pythonie 3 i nie możeszpip -m install
tego.pysqlite is not supported on Python 3. When using Python 3, use the sqlite3 module from the standard library
Zainstaluj
sqlite-devel
pakiet:yum install sqlite-devel -y
Ponownie skompiluj Pythona ze źródła:
./configure make make altinstall
źródło
mój Python jest zbudowany ze źródła, przyczyną jest brak opcji podczas konfiguracji Pythona w wersji 3.7.4
./configure --enable-loadable-sqlite-extensions --enable-optimizations make make install
naprawiony
źródło
Mój _sqlite3.so znajduje się w /usr/lib/python2.5/lib-dynload/_sqlite3.so. Sądząc po twoich ścieżkach, powinieneś mieć plik /usr/local/lib/python2.5/lib-dynload/_sqlite3.so.
Spróbuj wykonać następujące czynności:
find /usr/local -name _sqlite3.so
Jeśli plik nie zostanie znaleziony, coś może być nie tak z instalacją Pythona. Jeśli tak, upewnij się, że ścieżka, w której jest zainstalowany, znajduje się w ścieżce Pythona. W powłoce Pythona
import sys print sys.path
W moim przypadku /usr/lib/python2.5/lib-dynload znajduje się na liście, więc można znaleźć /usr/lib/python2.5/lib-dynload/_sqlite3.so.
źródło
Znalazłem wiele osób napotykających ten problem, ponieważ Multi-version Python, na moim własnym vps (cent os 7 x64), rozwiązałem go w ten sposób:
Znajdź plik „_sqlite3.so”
find / -name _sqlite3.so
na zewnątrz:
/usr/lib64/python2.7/lib-dynload/_sqlite3.so
Znajdź katalog biblioteki Python Standard, której chcesz użyć,
dla mnie
/usr/local/lib/python3.6/lib-dynload
Skopiuj plik:
cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
Wreszcie wszystko będzie dobrze.
źródło
ImportError: dynamic module does not define module export function (PyInit__sqlite3)
na CentOS 7..so
nie może być używany do py3.6.4? @xtluoImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
Niedawno próbowałem zainstalować python 2.6.7 na moim pulpicie Ubuntu 11.04 do pracy deweloperskiej. Napotkałem podobne problemy do tego wątku. Udało mi się to naprawić przez:
Dostosowanie pliku setup.py tak, aby zawierał poprawną ścieżkę dev sqlite. Fragment kodu z 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/' ]
Z bitem, który dodałem, to „/ usr / lib / x86_64-linux-gnu /”.
Po uruchomieniu make nie otrzymałem żadnych ostrzeżeń informujących, że obsługa sqlite nie została zbudowana (tj. Została zbudowana poprawnie: P), ale po uruchomieniu
make install
sqlite3 nadal nie importował z tym samym "ImportError: No module named _sqlite3" whe running "import sqlite3
".Tak więc biblioteka została skompilowana, ale nie została przeniesiona do właściwej ścieżki instalacji, więc skopiowałem
.so
plik (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/
- to są moje ścieżki kompilacji, prawdopodobnie będziesz musiał dostosować je do swojej konfiguracji).Voila! Obsługa SQLite3 teraz działa.
źródło
To zadziałało dla mnie w Redhat Centos 6.5:
yum install sqlite-devel pip install pysqlite
źródło
Mam problem we FreeBSD 8.1:
- No module named _sqlite3 -
Rozwiązuje się go przez port ----------
po tym widać:
OK ---------- '>>>' import sqlite3 ----- '>>>' sqlite3.apilevel ----- '2.0'
źródło
sqlite3
dostarczane z Pythonem. Miałem też ten sam problem, po prostu odinstalowałempython3.6
i ponownie zainstalowałem.Odinstaluj istniejący Python:
sudo apt-get remove --purge python3.6
Zainstaluj 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
źródło
Czy pakiet python-pysqlite2 jest zainstalowany?
sudo apt-get install python-pysqlite2
źródło
Sprawdzanie pliku settings.py. Czy nie napisałeś po prostu „sqlite” zamiast „sqlite3” dla silnika bazy danych?
źródło
musisz być w centos lub redhat i samemu skompilować Pythona , to jest błąd Pythona zrób to w swoim katalogu z kodem źródłowym Pythona i zrób to poniżej
curl -sk https://gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1
źródło
Mam ten sam problem, nic nie działało dla mnie z powyższych odpowiedzi, ale teraz go naprawiłem
po prostu usunąć
python.pip
isqlite3
i reinstallsudo apt-get remove python.pip
sudo apt-get remove sqlite3
teraz zainstaluj go ponownie
sudo apt-get install python.pip
sudo apt-get install sqlite3
w moim przypadku podczas
sqlite3
ponownej instalacji pokazał jakiś błąd, a następnie wpisałemsqlite3
na terminalu, aby sprawdzić, czy został usunięty, czy nie, i zaczął go rozpakowywać
Po
sqlite3
zainstalowaniu terminala fireup i napiszsqlite3
database.db
(aby stworzyć bazę danych)Jestem pewien, że to na pewno ci pomoże
źródło
Udzielanie odpowiedzi każdemu, kto wyląduje na tej stronie w poszukiwaniu rozwiązania dla systemu operacyjnego Windows:
Musisz zainstalować pysqlite3 lub db-sqlite3, jeśli nie zostały jeszcze zainstalowane. możesz użyć następujących, aby zainstalować.
Dla mnie problem dotyczył pliku DLL sqlite3.
Rozwiązanie:
Wziąłem plik DLL z witryny sqlite . Może się to różnić w zależności od wersji instalacji języka Python.
Wkleiłem go w katalogu DLL pliku env. dla mnie był to „C: \ Anaconda \ Lib \ DLLs”, ale poszukaj swojego.
źródło
Byłem rozczarowany, że ten problem istnieje do dziś. Ponieważ ostatnio próbowałem zainstalować vCD CLI na CentOS 8.1 i zostałem powitany z tym samym błędem, gdy próbowałem go uruchomić. Sposób, w jaki musiałem to rozwiązać w moim przypadku, jest następujący:
Ponieważ robiłem to, aby utworzyć inny post na blogu o tym, jak zainstalować vCD CLI i rozszerzenie VMware Container Service. W końcu przechwyciłem kroki, które zastosowałem, aby rozwiązać problem, i umieściłem je w osobnym poście na blogu pod adresem:
http://www.virtualizationteam.com/cloud/running-vcd-cli-fail-with-the-following-error-modulenotfounderror-no-module-named-_sqlite3.html
Mam nadzieję, że okaże się to pomocne, ponieważ chociaż powyższe wskazówki pomogły mi w znalezieniu rozwiązania, musiałem połączyć kilka z nich i nieco je zmodyfikować.
źródło
Dla Pythona 3.7.8 z Redhat 7 lub Centos 7.
źródło
Pobierz sqlite3:
wget http://www.sqlite.org/2016/sqlite-autoconf-3150000.tar.gz
Wykonaj następujące kroki, aby zainstalować:
$tar xvfz sqlite-autoconf-3071502.tar.gz $cd sqlite-autoconf-3071502 $./configure --prefix=/usr/local $make install
źródło
Musisz zainstalować pysqlite w swoim środowisku Pythona:
$ pip install pysqlite
źródło
Spróbuj skopiować
_sqlite3.so
, aby Python mógł go znaleźć.Powinno być tak proste, jak:
cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/
Zaufaj mi, spróbuj.
źródło