Seems I'm following the instructions, but somehow Django doesn't see django_countries as an app.
Error:
System check identified no issues (0 silenced).
February 18, 2021 - 23:56:01
Django version 3.1.4, using settings 'django_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/utils/module_loading.py", line 13, in import_string
module_path, class_name = dotted_path.rsplit('.', 1)
ValueError: not enough values to unpack (expected 2, got 1)
The above exception was the direct cause of the following exception:
(WSGI stuff...)
settings.py:
INSTALLED_APPS = [
'django_countries',
'registration.apps.RegistrationConfig',
.....
Project tree:
.
├── db.sqlite3
├── django_project
│ ├── asgi.py
│ ├── __init__.py
│ ├── __pycache__
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
├── myapp
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── __init__.py
│ ├── migrations
│ ├── models.py
│ ├── __pycache__
│ ├── static
│ ├── templates
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── readme.rst
├── registration
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ ├── models.py
│ ├── __pycache__
│ ├── static
│ ├── templates
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── requirements.txt
├── static
│ └── project
├── templates
│ └── project.html
└── venv
├── bin
├── include
├── lib
├── lib64 -> lib
└── pyvenv.cfg
I installed it with pip, using virtualenv. My virtual is active, I can check it with pip list, as well a import django-countries with the same interpreter I use to run django (python manage.py runserver
). And at any rate, within django Models I can clearly import & use django-countries (pycharm).
What's up?
I think what I really should do is delete this question. But then one has to own up to one's idiocy, so....
Apparently I had initially did this, and never noticed:
MIDDLEWARE = [
.... middlewares....
'django_countries', ]
I got the error, so thinking it was a venv issue & re-installed my virtual environement for this project. Then I, correctly, added it to the installed apps, not the middleware section:
INSTALLED_APPS = [
'django_countries',
'registration.apps.RegistrationConfig',
.....
But since Django's process to import middleware was still trying to import something that definitely wasn't a middleware and had the wrong syntax for that import, it failed with this full stack trace upon start:
xception in thread django-main-thread:
Traceback (most recent call last):
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/utils/module_loading.py", line 15, in import_string
module_path, class_name = dotted_path.rsplit('.', 1)
ValueError: not enough values to unpack (expected 2, got 1)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 45, in get_internal_wsgi_application
return import_string(app_path)
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/utils/module_loading.py", line 19, in import_string
module = import_module(module_path)
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/django_project/wsgi.py", line 16, in <module>
application = get_wsgi_application()
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
return WSGIHandler()
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/core/handlers/wsgi.py", line 127, in __init__
self.load_middleware()
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 40, in load_middleware
middleware = import_string(middleware_path)
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/utils/module_loading.py", line 17, in import_string
raise ImportError("%s doesn't look like a module path" % dotted_path) from err
ImportError: django_countries doesn't look like a module path
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/usr/lib/python3.9/threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/utils/autoreload.py", line 53, in wrapper
fn(*args, **kwargs)
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 138, in inner_run
handler = self.get_handler(*args, **options)
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/contrib/staticfiles/management/commands/runserver.py", line 27, in get_handler
handler = super().get_handler(*args, **options)
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 65, in get_handler
return get_internal_wsgi_application()
File "/run/media/fv/hdd-1/PROJECTS/django-receipes/django_template/venv/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 47, in get_internal_wsgi_application
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: WSGI application 'django_project.wsgi.application' could not be loaded; Error importing module.