I am starting a new project in Django 2.2 using the same commands as I always do:
python3 -m venv django-env
. django-env/bin/activate
pip install django
django-admin startproject mysite
cd mysite/
python3 manage.py runserver 8080
This should result in a running Django site, ready to write some code. Unfortunately, now I'm getting a strange error:
LookupError: No installed app with label 'admin'.
Full traceback:
Watching for file changes with StatReloader
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib64/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib64/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/core/management/commands/runserver.py", line 109, in inner_run
autoreload.raise_last_exception()
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/utils/autoreload.py", line 77, in raise_last_exception
raise _exception[0](_exception[1]).with_traceback(_exception[2])
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/apps/config.py", line 211, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/contrib/auth/models.py", line 2, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/contrib/auth/base_user.py", line 47, in <module>
class AbstractBaseUser(models.Model):
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/db/models/base.py", line 117, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/db/models/base.py", line 321, in add_to_class
value.contribute_to_class(cls, name)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/db/models/options.py", line 204, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/db/__init__.py", line 28, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/db/utils.py", line 201, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/db/utils.py", line 110, in load_backend
return import_module('%s.base' % backend_name)
File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/db/backends/sqlite3/base.py", line 66, in <module>
check_sqlite_version()
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/db/backends/sqlite3/base.py", line 63, in check_sqlite_version
raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
Traceback (most recent call last):
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/apps/registry.py", line 155, in get_app_config
return self.app_configs[app_label]
KeyError: 'admin'
During handling of the above exception, another exception occurred:
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/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/core/management/commands/runserver.py", line 60, in execute
super().execute(*args, **options)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/core/management/commands/runserver.py", line 95, in handle
self.run(**options)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/core/management/commands/runserver.py", line 102, in run
autoreload.run_with_reloader(self.inner_run, **options)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/utils/autoreload.py", line 579, in run_with_reloader
start_django(reloader, main_func, *args, **kwargs)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/utils/autoreload.py", line 564, in start_django
reloader.run(django_main_thread)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/utils/autoreload.py", line 272, in run
get_resolver().urlconf_module
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/utils/functional.py", line 80, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/urls/resolvers.py", line 564, in urlconf_module
return import_module(self.urlconf_name)
File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/ec2-user/environment/mysite/mysite/urls.py", line 20, in <module>
path('admin/', admin.site.urls),
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/utils/functional.py", line 256, in inner
self._setup()
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/contrib/admin/sites.py", line 529, in _setup
AdminSiteClass = import_string(apps.get_app_config('admin').default_site)
File "/home/ec2-user/environment/django-env/lib64/python3.6/dist-packages/django/apps/registry.py", line 162, in get_app_config
raise LookupError(message)
LookupError: No installed app with label 'admin'.
However after downgrading version of Django with pip install django==2.1.8
Everything is back to normal and works as expected.
I have looked at Django 2.2 release notes and list of backward incompatible changes and deprecated features and haven't found anything. Can anyone please shed some light as to what is happening?
django-admin is Django’s command-line utility for administrative tasks. This document outlines all it can do. In addition, manage.py is automatically created in each Django project. It does the same thing as django-admin but also sets the DJANGO_SETTINGS_MODULE environment variable so that it points to your project’s settings.py file.
By default, Django will use IPython or bpython if either is installed. If both are installed, specify which one you want like so: If you have a “rich” shell installed but want to force use of the “plain” Python interpreter, use python as the interface name, like so: Disables reading the startup script for the “plain” Python interpreter.
Sends a test email (to confirm email sending through Django is working) to the recipient (s) specified. For example: There are a couple of options, and you may use any combination of them together: Mails the email addresses specified in MANAGERS using mail_managers (). Mails the email addresses specified in ADMINS using mail_admins ().
Allows Django to skip an app’s initial migration if all database tables with the names of all models created by all CreateModel operations in that migration already exist. This option is intended for use when first running migrations against a database that preexisted the use of migrations.
The key error is earlier in the traceback:
raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
In Django 2.2, the minimum version of SQLite is increased from 3.7.15 to 3.8.3. Your installed version is too old.
This usually happens if you were previously working in an older version python/django, and now you try to run the app in newer version. To fix this, migrate and apply migrations, install any modules found missing. To avoid these kind of issues, use container like docker.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With