Я пытаюсь запустить приложение Django на моем VPS Debian 5. Когда я запускаю демонстрационное приложение, оно возвращается с этой ошибкой:
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
Глядя на установку Python, она дает ту же ошибку:
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
>>>
Чтение в Интернете, я узнаю, что Python 2.5 должен поставляться со всеми необходимыми SQLite оболочками. Нужно ли переустанавливать Python, или есть ли другой способ запустить этот модуль?
У меня была та же проблема (создание python2.5
из исходного кода на Ubuntu Lucid), а import sqlite3
- это исключение. Я установил libsqlite3-dev
из диспетчера пакетов, перекомпилировал python2.5, а затем работал импорт.
Кажется, ваш make файл не содержит соответствующего файла .so
. Вы можете исправить эту проблему с помощью следующих шагов:
sqlite-devel
(или libsqlite3-dev
в некоторых системах на основе Debian)./configure --enable-loadable-sqlite-extensions && make && sudo make install
Заметка
Часть sudo make install
установит эту версию Python как общесистемный стандарт, что может иметь непредвиденные последствия. Если вы запустите эту команду на своей рабочей станции, вы, вероятно, захотите установить ее вместе с существующим питоном, что можно сделать с помощью sudo make altinstall
.
Это то, что я сделал, чтобы заставить его работать.
Я использую pythonbrew (который использует pip) с установленным python 2.7.5.
Сначала я сделал то, что сказал Zubair (выше) и выполнил эту команду:
sudo apt-get install libsqlite3-dev
Затем я выполнил следующую команду:
pip install pysqlite
Это фиксировало проблему с базой данных, и я получил подтверждение этого при запуске:
python manager.py syncdb
yum install sqlite-devel
вместо первой строки yum install sqlite-devel
.
pysqlite
теперь sqlite3
в Python 3, и вы не можете pip -m install
, что.
У меня была такая же проблема с Python 3.5 на Ubuntu при использовании pyenv.
Если вы устанавливаете python с помощью pyenv, он указан как один из общие проблемы сборки. Чтобы решить эту проблему, удалите установленную версию python, установите требования (для этого конкретного случая libsqlite3-dev
), затем переустановите версию python.
Установите пакет sqlite-devel
:
yum install sqlite-devel -y
Перекомпилируйте python из источника:
./configure
make
make altinstall
Мой _sqlite3.so находится в /usr/lib/python 2.5/lib-dynload/_sqlite3.so. Судя по вашим путям, у вас должен быть файл /usr/local/lib/python 2.5/lib-dynload/_sqlite3.so.
Попробуйте следующее:
find /usr/local -name _sqlite3.so
Если файл не найден, что-то может быть неправильным при установке Python. Если это так, убедитесь, что путь, который он установил, находится в пути Python. В оболочке Python
import sys
print sys.path
В моем случае, /usr/lib/python 2.5/lib-dynload находится в списке, поэтому он может найти/usr/lib/python2.5/lib-dynload/_sqlite3.so.
Недавно я попробовал установить python 2.6.7 на рабочий стол Ubuntu 11.04 для работы некоторых разработчиков. Применили похожие проблемы к этой теме. Я пробовал исправлять это:
Настройка файла setup.py для включения правильного пути devl sqlite. Фрагмент кода из 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/'
]
С битом, который я добавил: '/usr/lib/x86_64-linux-gnu/'.
После запуска make я не получил никаких предупреждений о том, что поддержка sqlite не была построена (т.е. построена правильно: P), но после запуска make install
, sqlite3 все еще не импортировал с тем же "ImportError: No module named _sqlite3" whe running "import sqlite3
".
Итак, библиотека была скомпилирована, но не перешла на правильный путь установки, поэтому я скопировал файл .so
(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/
- это мои пути сборки, вам, вероятно, придется настроить их на свою установку).
Voila! Поддержка SQLite3 теперь работает.
Я обнаружил, что многие люди сталкиваются с этой проблемой, потому что Python с несколькими версиями, на моем собственном vps (cent os 7 x64), я решил это следующим образом:
Найдите файл "_sqlite3.so"
find / -name _sqlite3.so
out: /usr/lib64/python2.7/lib-dynload/_sqlite3.so
Найдите каталог стандартной библиотеки python, который вы хотите использовать,
для меня /usr/local/lib/python3.6/lib-dynload
Скопируйте файл:
cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.6/lib-dynload
Наконец, все будет хорошо.
Это работало для меня в Redhat Centos 6.5:
yum install sqlite-devel
pip install pysqlite
sqlite3
поставляется с Python. У меня тоже была такая же проблема, я просто удалил python3.6
и установил его снова.
Удалите существующий Python:
sudo apt-get remove --purge python3.6
Установите 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
У меня проблема во FreeBSD 8.1:
- No module named _sqlite3 -
Он разрешен стоять на порту ----------
/usr/ports/databases/py-sqlite3
после этого можно увидеть:
OK ----------
'>>>' import sqlite3 -----
'>>>' sqlite3.apilevel -----
'2.0'
Проверка файла settings.py. Вы не просто писали "sqlite" вместо "sqlite3" для механизма базы данных?
Извините за оживление старой темы. Я пробовал все из этой темы, но у меня все та же проблема
Я, безусловно, что-то упустил. было бы здорово, если у вас есть идея, что я мог бы попробовать
Вот часть журнала:...... Файл "/usr/local/lib/python3.7/sqlite3/init.py", строка 23, из sqlite3.dbapi2 import * File "/usr/local/lib/python3.7/sqlite3/dbapi2.py ", строка 27, из _sqlite3 import * ModuleNotFoundError: нет модуля с именем '_sqlite3'
Заранее спасибо. Приветствия Джонс
Попробуйте скопировать _sqlite3.so
чтобы Python мог его найти.
Это должно быть так просто, как:
cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/
Поверь мне, попробуй.
У меня возникла та же проблема, у меня ничего не получалось из вышеприведенного ответа, но теперь я исправил
просто удалите python.pip
и sqlite3
и переустановить
sudo apt-get remove python.pip
sudo apt-get remove sqlite3
теперь установите его снова
sudo apt-get install python.pip
sudo apt-get install sqlite3
в моем случае при установке sqlite3
снова он показал какую-то ошибку, затем я набрал
sqlite3
на терминале, чтобы проверить, был ли он удален или начал распаковывать его
после того, как sqlite3
установлен fireup терминал и писать
sqlite3
database.db
(для создания базы данных)Я уверен, что это обязательно поможет вам
вы должны быть в centos или redhat и скомпилировать python самостоятельно, это ошибка python сделайте это в своем исходном коде python и сделайте это ниже
curl -sk https://gist.github.com/msabramo/2727063/raw/59ea097a1f4c6f114c32f7743308a061698b17fd/gistfile1.diff | patch -p1
Установлен ли python-pysqlite2 пакет
sudo apt-get install python-pysqlite2
Загрузите sqlite3:
wget http://www.sqlite.org/2016/sqlite-autoconf-3150000.tar.gz
Для установки выполните следующие действия:
$tar xvfz sqlite-autoconf-3071502.tar.gz
$cd sqlite-autoconf-3071502
$./configure --prefix=/usr/local
$make install
У меня также была эта проблема для django 1.9, python3.5 и ubuntu 14.04 Я только что добавил sudo перед каждой командой и решил свою проблему пример
sudo python manage.py migrate
sudo python manage.py runserver
Вам нужно установить pysqlite в вашей среде python:
$ pip install pysqlite