LINUX.ORG.RU

ModuleNotFoundError: No module named '_sqlite3'

 ,


0

1

Привет.

Вчера установил Django и при запуске локального сервера «python manage.py runserver» выдает ошибку:

(vevn) dizinnes@dizinnes-Aspire-A315-41G:~/PycharmProjects/qwe/mysite$ python manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception
    raise _exception[1]
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/core/management/__init__.py", line 357, in execute
    autoreload.check_errors(django.setup)()
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/contrib/auth/models.py", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/contrib/auth/base_user.py", line 47, in <module>
    class AbstractBaseUser(models.Model):
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/db/models/base.py", line 121, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/db/models/base.py", line 325, in add_to_class
    value.contribute_to_class(cls, name)
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/db/models/options.py", line 208, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/db/__init__.py", line 28, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/db/utils.py", line 207, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/dizinnes/PycharmProjects/qwe/vevn/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 14, in <module>
    from sqlite3 import dbapi2 as Database
  File "/usr/local/lib/python3.8/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.8/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

Находил ответы: https://stackoverflow.com/questions/1210664/no-module-named-sqlite3 , ну они не помогают

Вот список pip list virtualenv:

(vevn) dizinnes@dizinnes-Aspire-A315-41G:~/PycharmProjects/qwe/mysite$ pip list
Package    Version
---------- -------
antiorm    1.2.1  
asgiref    3.2.3  
db         0.1.1  
db-sqlite3 0.0.1  
Django     3.0    
pip        19.3.1 
pytz       2019.3 
setuptools 41.2.0 
sqlparse   0.3.0  

OS: Ubuntu 19.04

Можете показать locate libsqlite3 ? И установлен ли у вас libsqlite3-dev и libsqlite3? А также пробовали ли вы из исходников пересобирать python? Просто _sqlite3 - это низкоуровневый модуль(на С) для Python. Для его работы нужна libsqlite3. С большой долей вероятности у вас проблема с самой либой, или сишной частью модуля sqlite3.

lucentcode ★★★★★ ()

Ну и версию python проверить стоит. А то у них в 3.6 бага была

Можете скрипт с python -m pdb manage.py runserver прогнать? Хотелось бы таки грязных подробностей о причине, по которой возникает данная ошибка. Частенько возникает из-за невозможности загрузки .so-шки.

А вообще причины ошибки бывают разные. Иногда это криво собранный python. Даже у MS на Azure был факап с ним

lucentcode ★★★★★ ()
Последнее исправление: lucentcode (всего исправлений: 4)
Ответ на: комментарий от lucentcode

Да конечно вот сюда залил: https://gist.github.com/DiZiNnEs/ae70c8c85ed73910592e385f2723b508

Чета форум ругается то что много слишком букв : ) На Гист залил

  1. Нет никогда не собирал Python ибо в таких делах полный чайник
DiZiNnEs ()
Последнее исправление: DiZiNnEs (всего исправлений: 2)
Ответ на: комментарий от infomeh
dizinnes@dizinnes-Aspire-A315-41G:~$ dpkg -l | grep -i sqlite
ii  libqt5sql5-sqlite:amd64                    5.12.4+dfsg-4ubuntu1                   amd64        Qt 5 SQLite 3 database driver
ii  libsqlite3-0:amd64                         3.29.0-2ubuntu0.1                      amd64        SQLite 3 shared library
ii  libsqlite3-0:i386                          3.29.0-2ubuntu0.1                      i386         SQLite 3 shared library
ii  libsqlite3-dev:amd64                       3.29.0-2ubuntu0.1                      amd64        SQLite 3 development files

DiZiNnEs ()
Ответ на: комментарий от anonymous

Нет, ибо в документации я не видел такого :D

Только что вот выполнил команду python manage.py migrate и вот результаты:

(venv) dizinnes@dizinnes-Aspire-A315-41G:~/PycharmProjects/test/mysite$ python manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 377, in execute
    django.setup()
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/contrib/auth/models.py", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/contrib/auth/base_user.py", line 47, in <module>
    class AbstractBaseUser(models.Model):
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/models/base.py", line 121, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/models/base.py", line 325, in add_to_class
    value.contribute_to_class(cls, name)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/models/options.py", line 208, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/__init__.py", line 28, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/utils.py", line 207, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 14, in <module>
    from sqlite3 import dbapi2 as Database
  File "/usr/local/lib/python3.8/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.8/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

DiZiNnEs ()

Проверьте стоит ли пакет libsqlite3-0.

При запуске с pdb после появления приглашение (Pdb) нужно вводить команду n или continue и жать Enter пока не появится сообщение об ошибке.

Кроме того, неплохо бы увидеть выхлоп

strace -s 999 -ff -tt -v python manage.py runserver 2>&1|tee strace_output

Выхлоп команды с strace_output можно зашить на pastebin.

lucentcode ★★★★★ ()
Ответ на: комментарий от DiZiNnEs

А ты питон откуда притащил? В 19.04 по дефолту 3.7, а не 3.8. Где-то ты зависимость и потерял, так-то sqlite3 по дефолту должен быть доступен, по-моему. Впрочем у меня в установочном скрипте sqlite3 доустанавливается.

Просто выполни: sudo apt install sqlite3

WitcherGeralt ★★ ()
Ответ на: комментарий от DiZiNnEs

А

strace -s 999 -ff -tt -v python3 manage.py runserver 2>&1|tee strace_output

можете показать? Со второй версией питона у вас сообщение о синтаксической ошибке вылезает. Как я понимаю, проект на 3-ей версии питона работает?

lucentcode ★★★★★ ()
Ответ на: комментарий от lucentcode

Да, проект работает на Python 3.8

Когда вбиваю

strace -s 999 -ff -tt -v python3 manage.py runserver 2>&1|tee strace_output

Происходит бесконечное зацикливание одного и того же результат, я резко запустил потом CTRL + C и вот результат: https://pastebin.com/YBB24f8T

DiZiNnEs ()
Ответ на: комментарий от DiZiNnEs

Как я понимаю, проект на 3-ей версии питона работает?

Судя по

  File "/usr/local/lib/python3.8/sqlite3/dbapi2.py", line 27, in 

вы используете не стандартную сборку python 3.8, установленную в /usr/local/ что не похоже на стандартную версию python в Ubuntu 19.04. Или версию собрали криво, или у вас не установлен sqlite3. Но учитывая не стандартную самопальную версию python, думаю дело в ней. Как именно вы python 3.8 себе ставили?

Если из стандартного пакета, то он зависит от libpython3.8-stdlib, а та в свою очередь от кучи либ, в том числе от libsqlite3-0.

Проверьте, что показывает

apt install libsqlite3-0

и что будет, если его обновить/переустановить. Это системный пакет, ставится через apt, не через pip.

lucentcode ★★★★★ ()
Ответ на: комментарий от lucentcode

Попробовал создать проект через PyCharm используя их встроенный редактор виртуального окружения и установив Django, команда:

python manage.py runserver

успешна запустилась. Тогда если в пайчарме все нормально, значит я что то делаю не так когда создаю сам все через консоль ?

DiZiNnEs ()
Ответ на: комментарий от DiZiNnEs

Возможно у вас в консоли и в PyCharm разные версии питона вызываются, или с разными переменными окружения. Можете глянуть путь к python в консоли у вас и в PyCharm? Какую версию интерпритатора использует в обоих случаях питон, откуда берёт модули. Затем сделайте как делает PyCharm и всё будет Ok.

И кстати, а что показывает

python3 manage.py runserver

в консоли?

lucentcode ★★★★★ ()
Последнее исправление: lucentcode (всего исправлений: 1)
Ответ на: комментарий от lucentcode

Кажется вы правы, во время установки я наверное накосячил :D, ибо были проблемы с установкой Python 3.8 вместо Python 3.7.5 (он кстати остался еще). Теперь я думаю удалить все и переустановить это заново, только как мне это реализовать правильно ?

Вот что выдает:

dizinnes@dizinnes-Aspire-A315-41G:~$ apt install libsqlite3-0
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock-frontend - open (13: Отказано в доступе)
E: Невозможно получить блокировку внешнего интерфейса dpkg (/var/lib/dpkg/lock-frontend); у вас есть права суперпользователя?
dizinnes@dizinnes-Aspire-A315-41G:~$ sudo apt install libsqlite3-0
[sudo] пароль для dizinnes: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Уже установлен пакет libsqlite3-0 самой новой версии (3.29.0-2ubuntu0.1).
libsqlite3-0 помечен как установленный вручную.
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
dizinnes@dizinnes-Aspire-A315-41G:~$ 

sudo

Сам добавил в конце ибо просил

DiZiNnEs ()
Ответ на: комментарий от lucentcode

Это результаты из PyCharm

(venv) dizinnes@dizinnes-Aspire-A315-41G:~/PycharmProjects/Django-project/mysite$ python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

December 14, 2019 - 20:52:26
Django version 3.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.


DiZiNnEs ()
Ответ на: комментарий от WitcherGeralt
dizinnes@dizinnes-Aspire-A315-41G:~$ python3.7 -c 'import sqlite3; print("ok")'
ok
dizinnes@dizinnes-Aspire-A315-41G:~$ python3.8 -c 'import sqlite3; print("ok")'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.8/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.8/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

DiZiNnEs ()
Последнее исправление: DiZiNnEs (всего исправлений: 1)
Ответ на: комментарий от lucentcode

Выхлоп:

(venv) dizinnes@dizinnes-Aspire-A315-41G:~/PycharmProjects/test/mysite$ python3.8 manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception
    raise _exception[1]
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 357, in execute
    autoreload.check_errors(django.setup)()
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/contrib/auth/models.py", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/contrib/auth/base_user.py", line 47, in <module>
    class AbstractBaseUser(models.Model):
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/models/base.py", line 121, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/models/base.py", line 325, in add_to_class
    value.contribute_to_class(cls, name)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/models/options.py", line 208, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/__init__.py", line 28, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/utils.py", line 207, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/dizinnes/PycharmProjects/test/venv/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 14, in <module>
    from sqlite3 import dbapi2 as Database
  File "/usr/local/lib/python3.8/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.8/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

And:

izinnes@dizinnes-Aspire-A315-41G:~$ python3.7 -c 'import sqlite3; print("ok")'
ok
dizinnes@dizinnes-Aspire-A315-41G:~$ python3.8 -c 'import sqlite3; print("ok")'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.8/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/local/lib/python3.8/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

DiZiNnEs ()
Ответ на: комментарий от DiZiNnEs

sqlite3 в Python 3.8 - часть стандартной библиотеки, а не дополнительный модуль. Поставляется эта стандартная либа в Ubuntu в виде пакета libpython3.8-stdlib. В вашем случае похоже что пакет собран криво, без sqlite. Думаю вам стоит подумать о пересборке python из исходников так, как описано тут

lucentcode ★★★★★ ()
Последнее исправление: lucentcode (всего исправлений: 2)
Ответ на: комментарий от DiZiNnEs

Хорошо, что заработало. Бывает такое, что криво собирается питон, и какой-то из модулей с привязкой к нативной либе не работает. Я, к примеру, именно из-за этого вообще не люблю python из реп. Для каждого проекта лучше поставлять свой Python с батарейками, собранный в /opt/ или в /usr/local. С помощью https://fpm.readthedocs.io/ собранный python можно влёгкую опакетить в deb, и будет вообще хорошо :)

lucentcode ★★★★★ ()