我正在尝试在 Amazon EC2 实例上的子域上托管一个基本的 Django-Oscar 应用。 它是本地服务器上的工作文件,但在托管时它按照
给出以下错误Apache错误日志
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
我的 settings.py 文件是:
"""
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 文件是:
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>
任何人都可以通过什么/为什么错误引导?
答案 0 :(得分:4)
我无法发表评论,因为我没有足够的代表。显然,根据wsgi.py文件所说的位置找不到settings.py文件。
因此我们需要查看您的项目目录结构。它看起来应该是这样的。
YourProject
> FrobShop
settings.py
wsgi.py
好消息是你的virtualenv找到了wsgi文件,它是无法找到设置的wsgi。
答案 1 :(得分:3)
确保您已包含该文件 __init__.py 在包含和导致您的设置文件的每个目录中。
如果您的目录中没有包含__init__.py文件,则python版本&lt; 3无法将目录识别为模块。