My Django skill level: noob.
I am going nuts at setting the DJANGO_SETTINGS_MODULE
properly to finally get my model imported within a script. I use a virtualenv
for my project.
This is my current error:
ModuleNotFoundError: No module named 'dashex'
And the according feeder.py
script:
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'dashex.settings'
sys.path.append('os.path.dirname(os.path.dirname(os.path.abspath(__file__)))')
import django
django.setup()
import zmq
import time
from time import sleep
import uuid
from Dashboard_app.models import AccountInformation
[...]
Background:
I first used the settings.configure()
solution posted here. However, this solution raised this error... So I hope DJANGO_SETTINGS_MODULE
can do the trick.
According to the documentation (docu) I have to use Django-admin
to set DJANGO_SETTINGS_MODULE
.
What I've tried:
Executed
$ set DJANGO_SETTINGS_MODULE=dashex.settings
in my command prompt on windows, just nothing happens.Executed
$ py manage.py set DJANGO_SETTINGS_MODULE=dashex.settings
which raises the errorunknown command set
Executed
$ django-admin set DJANGO_SETTINGS_MODULE=dashex.settings
in themanage.py
root of my project raises the errorno module named dashex
.This answer from @Casper suggests to do the above mentioned, but how to handle this:
C:\temp\testproject> set DJANGO_SETTINGS_MODULE=testproject.settings
?This solution from @Max suggests to append
export DJANGO_SETTINGS_MODULE=<django_project>.settings
to my virtual-environment. What is meant with this, how to do that?Executed
$ django-admin runserver --settings=dashex.settings
which also raises the errorno module named dashex
.Executed
$ py manage.py runserver --settings=dashex.settings
which starts the server with the proper settings. But the initial mentioned error persists.
My project:
Settings.py:
import os.path
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = ''
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ["127.0.0.1", "locahost"]
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
#other Apps
'Wiki_app',
'rest_framework',
'Dashboard_app.apps.DashboardAppConfig'
]
Latest traceback after @alasdair's solution:
Traceback (most recent call last):
File "C:\Users\Jonas Blickle\Desktop\dashex\Dashboard_app\feeder.py", line 6, in <module>
django.setup()
File "C:\Program Files\lib\site-packages\django\__init__.py", line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "C:\Program Files\lib\site-packages\django\conf\__init__.py", line 79, in __getattr__
self._setup(name)
File "C:\Program Files\lib\site-packages\django\conf\__init__.py", line 66, in _setup
self._wrapped = Settings(settings_module)
File "C:\Program Files\lib\site-packages\django\conf\__init__.py", line 157, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Program Files\lib\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 961, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'dashex'
[Finished in 0.37s]
Working solution:
import sys
sys.path.insert(0, r"C:\Users\Jonas\Desktop\Dashex")
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'Dashex.settings'
import django
django.setup()
from Dashboard.models import AccountInformation
[...]