目标WSGI脚本wsgi.py'不能作为Python模块加载

问题描述:

我试图用AWS ElasticBeanstalk来扩展我的django项目,但是我得到一个错误,当我部署该项目时错误不会出现,但是当我缩放但我得到这个错误:目标WSGI脚本wsgi.py'不能作为Python模块加载

ValueError: Unable to configure handler 'file_log': [Errno 13] Permission 
    denied: '/var/log/meatme/django.log' 
mod_wsgi (pid=4829): Target WSGI script 
    '/opt/python/current/app/meatme/meatme/wsgi.py' cannot be loaded as 
    Python module. 
mod_wsgi (pid=4829): Exception occurred processing WSGI script 
    '/opt/python/current/app/meatme/meatme/wsgi.py'. 
Traceback (most recent call last): 
File "/opt/python/current/app/meatme/meatme/wsgi.py", line 16, in <module> 
    application = get_wsgi_application() 
File "/opt/python/run/venv/lib/python2.7/site- 
    packages/django/core/wsgi.py", line 13, in get_wsgi_application 
    django.setup(set_prefix=False) 
File "/opt/python/run/venv/lib/python2.7/site-packages/django/__init__.py", 
    line 22, in setup 
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
File "/opt/python/run/venv/lib/python2.7/site- 
    packages/django/utils/log.py", line 75, in configure_logging 
    logging_config_func(logging_settings) 
File "/usr/lib64/python2.7/logging/config.py", line 794, in dictConfig 
    dictConfigClass(config).configure() 
File "/usr/lib64/python2.7/logging/config.py", line 576, in configure 
    '%r: %s' % (name, e)) 

我有这个配置文件.ebextensions:

commands: 
    00_create_dir: 
    command: mkdir -p /var/log/meatme 
    01_change_permissions: 
    command: chmod g+s /var/log/meatme 
    02_change_owner: 
    command: chown -R wsgi:wsgi /var/log/meatme 

和wsgi.py

import os 

from django.core.wsgi import get_wsgi_application 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meatme.settings") 

application = get_wsgi_application() 

当我做eb部署它的工作完美,但当我做eb克隆2(测试规模)新实例不工作。

+0

假设你的意思是mod_wsgi的,而不是uWSGI为您所标记的问题。问题标题中的错误消息看起来是来自mod_wsgi而不是uWSGI。 –

在mod_wsgi下运行时,应避免使用单独的文件设置Python日志记录。相反,只需将其配置为将日志记录发送到控制台流。这些消息将在Apache错误日志中被捕获。

用途:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'handlers': { 
     'console': { 
      'class': 'logging.StreamHandler', 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers': ['console'], 
      'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'), 
     }, 
    }, 
}