我试图在Elastic Beanstalk上部署hello-world类型的应用程序。几乎所有的东西似乎都可以工作,软件包被安装等等,直到mod_wsgi尝试从wsgi.py中检索“application”对象。在这一点上,下面将出现在日志中(一旦在日志为每个unsuccessfuly HTTP请求):ImportError:无法导入名称NullHandler
mod_wsgi (pid=6114): Target WSGI script '/opt/python/current/app/myapp/wsgi.py' cannot be loaded as Python module.
mod_wsgi (pid=6114): Exception occurred processing WSGI script '/opt/python/current/app/myapp/wsgi.py'.
Traceback (most recent call last):
File "/opt/python/current/app/caserails/wsgi.py", line 20, in <module>
application = get_wsgi_application()
File "/opt/python/run/venv/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
django.setup()
File "/opt/python/run/venv/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
from django.utils.log import configure_logging
File "/opt/python/run/venv/lib/python2.7/site-packages/django/utils/log.py", line 16, in <module>
from logging import NullHandler # NOQA
ImportError: cannot import name NullHandler
Link to concurrent AWS Forum Post.
当然是有名的遗言。 。 。但是,我确实把一些syslog语句放到了我的wsgi.py文件中去试试看(例如syslog.syslog('sys.executable:{}'。format(sys.executable)); ),当我运行它返回的python(例如-V)它说我的python可执行文件是2.7.5。 – Erik 2014-11-15 04:36:16
为什么你的回溯具有'/ opt/python/current/...'路径和'/ opt/python/run/venv/...'?某种类型的virtualenv配置错误? – vikramls 2014-11-15 06:16:56
我*认为所有不同的python路径都是AWS的EB环境设置virtualenvs在mod_wsgi下运行的工件。 [这是Google的一些文档。](https://code.google.com/p/modwsgi/wiki/VirtualEnvironments)。有三种潜在的代码来源。 。 。 AWS Elastic Beanstalk基线环境(不应直接在此处访问,而应该是运行mod_wsgi解释器的“环境”),虚拟环境(正在运行中)以及我的应用程序(它处于当前状态) – Erik 2014-11-16 19:45:30