Django without module with customization
I am trying to host a basic Django-Oscar application in a subdomain on an Amazon EC2 instance . This is a working file on local server, but on hosting it gives the following error according to
Apache error log
mod_wsgi (pid=13645): Target WSGI script '/home/ubuntu/frobshop.com/frobshop/frobshop/wsgi.py' cannot be loaded as Python module.
mod_wsgi (pid=13645): Exception occurred processing WSGI script '/home/ubuntu/frobshop.com/frobshop/frobshop/wsgi.py'.
Traceback (most recent call last):
File "/home/ubuntu/frobshop.com/frobshop/frobshop/wsgi.py", line 14, in <module>
application = get_wsgi_application()
File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 14, in get_wsgi_application
django.setup()
File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 20, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 46, in __getattr__
self._setup(name)
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 98, in __init__
% (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'frobshop.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named frobshop.settings
My settings.py file :
"""
Django settings for frobshop project.
For more information on this file, see
https://docs.djangoproject.com/en/1.7/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.7/ref/settings/
"""
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
import oscar
from oscar import OSCAR_MAIN_TEMPLATE_DIR
from oscar import get_core_apps
from oscar.defaults import *
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
location = lambda x: os.path.join(
os.path.dirname(os.path.realpath(__file__)), x)
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'h9(c0lu!m8%5&qy)boa(l&32x4&0#(330zz-v%3%a_vu4b4hm+'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
OSCAR_SHOP_NAME = ""
OSCAR_HOMEPAGE = reverse_lazy('promotions:home')
# USE_LESS = True
TEMPLATE_DEBUG = True
THUMBNAIL_DEBUG = True
ALLOWED_HOSTS = []
# 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',
'django.contrib.flatpages',
'compressor'
] + get_core_apps()
SITE_ID = 1
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.request",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
'oscar.apps.search.context_processors.search_form',
'oscar.apps.promotions.context_processors.promotions',
'oscar.apps.checkout.context_processors.checkout',
'oscar.apps.customer.notifications.context_processors.notifications',
'oscar.core.context_processors.metadata',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'oscar.apps.basket.middleware.BasketMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
)
AUTHENTICATION_BACKENDS = (
'oscar.apps.customer.auth_backends.EmailBackend',
'django.contrib.auth.backends.ModelBackend',
)
TEMPLATE_DIRS = (
location('templates'),
OSCAR_MAIN_TEMPLATE_DIR,
)
STATICFILES_DIRS = (
os.path.join(BASE_DIR, '/static/'),
)
# COMPRESS_PRECOMPILERS = (
# ('text/less', 'lessc {infile} {outfile}'),
# )
STATICFILES_FINDERS = (
'compressor.finders.CompressorFinder',
)
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
},
}
# HAYSTACK_CONNECTIONS = {
# 'default': {
# 'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
# 'URL': 'http://127.0.0.1:8983/solr',
# 'INCLUDE_SPELLING': True,
# },
# }
ROOT_URLCONF = 'frobshop.urls'
WSGI_APPLICATION = 'frobshop.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'frobshop',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
'ATOMIC_REQUESTS': True,
}
}
# Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR + "/static/"
MEDIA_URL = '/media/'
MEDIA_ROOT = location("media")
OSCAR_INITIAL_ORDER_STATUS = 'Pending'
OSCAR_INITIAL_LINE_STATUS = 'Pending'
OSCAR_ORDER_STATUS_PIPELINE = {
'Pending': ('Being processed', 'Cancelled',),
'Being processed': ('Processed', 'Cancelled',),
'Cancelled': (),
}
Apache conf file :
WSGIScriptAlias / /home/ubuntu/frobshop.com/frobshop/frobshop/wsgi.py
WSGIPythonPath /home/ubuntu/frobshop.com/frobshop
<VirtualHost *:80>
Alias /static/ /home/ubuntu/frobshop.com/static/
Alias /media/ /home/ubuntu/frobshop.com/media/
ServerName "The subdomain I am using"
<Directory /home/ubuntu/frobshop.com/frobshop/frobshop>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
<Directory /home/ubuntu/frobshop.com/frobshop/static>
Require all granted
</Directory>
<Directory /home/ubuntu/frobshop.com/frobshop/media>
Require all granted
</Directory>
<Directory /home/ubuntu/frobshop.com/media>
Require all granted
</Directory>
<Directory /home/ubuntu/frobshop.com/frobshop/staticfiles>
Require all granted
</Directory>
</VirtualHost>
Can anyone explain what / why is the error?
+3
source to share
2 answers
I cannot comment because I lack a reputation. Obviously the problem is that the settings.py file was not found depending on where your wsgi.py file says it will.
Therefore, we need to see the structure of your project. It should look like this.
YourProject
> FrobShop
settings.py
wsgi.py
The good news is the wsgi file your virtual user found is wsgi that can't find settings.
+4
source to share