我試圖在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