【发布时间】:2014-04-30 22:02:43
【问题描述】:
我在尝试在 EB 上运行我的 python web 应用程序时遇到了问题。它在本地运行良好,但在 EB 上运行时出现以下异常。问题似乎是它遇到了异常,但是堆栈跟踪是在原始错误之后发生的错误,所以我无法确定根本原因是什么:
Exception on /admin GET
Traceback (most recent call last):
File "/opt/python/run/venv/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/opt/python/run/venv/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/opt/python/run/venv/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/opt/python/run/venv/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/opt/python/run/venv/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functionshttp://rule.endpoint(**req.view_args)
File "/opt/python/run/venv/lib/python2.7/site-packages/sandman/sandman.py", line 459, in get_collection
cls = endpoint_class(collection)
File "/opt/python/run/venv/lib/python2.7/site-packages/sandman/sandman.py", line 185, in endpoint_class
cls = current_app.class_referencescollection
File "/opt/python/run/venv/lib/python2.7/site-packages/werkzeug/local.py", line 338, in __getattr__
return getattr(self._get_current_object(), name)
AttributeError: 'Flask' object has no attribute 'class_references'
当我在通过 SSH 连接到我的实例后在端口 5000 上手动启动应用程序并尝试从控制台加载相同的页面时,我没有收到任何错误(并且保存的文件包含正确的 HTML):
wget http://127.0.0.1:5000/admin
--2014-03-23 17:01:13-- http://127.0.0.1:5000/admin
Connecting to 127.0.0.1:5000... connected.
HTTP request sent, awaiting response... 127.0.0.1 - - 23/Mar/2014 17:01:13 "GET /admin HTTP/1.1" 301 -
301 MOVED PERMANENTLY
Location: http://127.0.0.1:5000/admin/ following
--2014-03-23 17:01:13-- http://127.0.0.1:5000/admin/
Connecting to 127.0.0.1:5000... connected.
HTTP request sent, awaiting response... 127.0.0.1 - - 23/Mar/2014 17:01:13 "GET /admin/ HTTP/1.1" 200 -
200 OK
Length: 1519 (1.5K) text/html
Saving to: ‘admin’
这是我正在运行的 python 应用程序代码:http://pastebin.com/qgnWz6aK
【问题讨论】:
-
您是否检查过 Python / Flask / Werkzeug 版本是否与您本地的版本匹配?
-
Python 在本地和服务器上是 2.7。 flask 和 werkzeug 版本是由 Pip 在 requirements.txt 文件中定义的,所以它们也是一样的。
标签: python flask amazon-elastic-beanstalk