Django没有名为setting

时间:2015-04-28 22:43:42

标签: python django apache django-oscar

我正在尝试在 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>

任何人都可以通过什么/为什么错误引导?

2 个答案:

答案 0 :(得分:4)

我无法发表评论,因为我没有足够的代表。显然,根据wsgi.py文件所说的位置找不到settings.py文件。

因此我们需要查看您的项目目录结构。它看起来应该是这样的。

YourProject
   > FrobShop
     settings.py
   wsgi.py

好消息是你的virtualenv找到了wsgi文件,它是无法找到设置的wsgi。

答案 1 :(得分:3)

确保您已包含该文件     __init__.py 在包含和导致您的设置文件的每个目录中。

如果您的目录中没有包含__init__.py文件,则python版本&lt; 3无法将目录识别为模块。