目标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(测试规模)新实例不工作。
答
在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'),
},
},
}
假设你的意思是mod_wsgi的,而不是uWSGI为您所标记的问题。问题标题中的错误消息看起来是来自mod_wsgi而不是uWSGI。 –