python - 导入错误 : cannot import name NullHandler

标签 python django python-2.7 amazon-elastic-beanstalk

我正在尝试在 Elastic Beanstalk 上部署一个 hello-world 类型的应用程序。几乎一切似乎都在工作,安装包等,直到 mod_wsgi 尝试从 wsgi.py 检索“应用程序”对象。此时,日志中会出现以下内容(每个不成功的 HTTP 请求在日志中出现一次):

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.

最佳答案

NullHandler 仅适用于 Python 2.7+ 版本。您可以在 ImportError 上自己创建 NullHandler:

import logging

try:
    from logging import NullHandler
except ImportError:
    class NullHandler(logging.Handler):
        def emit(self, record):
            pass

logging.getLogger(__name__).addHandler(NullHandler())

关于 logging.NullHandler 的更多信息:https://docs.python.org/3/library/logging.handlers.html#logging.NullHandler .

关于python - 导入错误 : cannot import name NullHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26939308/

相关文章:

Python:强制新型类

python - 如何用 not and or 简化 bool 表达式?

python - 防止 Python webbrowser.open() 控制屏幕并阻止其他进程。可以最小化打开吗?

python-2.7 - 如何将 python Reportlab 表定位在位置 10,100 并使用 drawString

python 从文本文件中获取行+1

django - contenttypes.contenttype 在此迁移中不可用

django - 在 Heroku 上部署 Django 1.7 应用程序

python - 回滚 post_save 接收器中的事务?

python - 如何在Python请求的 header 中发送API key ?

python - 如何在 python 中安装 xml.dom.minidom