RuntimeError:在请求上下文之外工作。带着古尼康

2024-04-18 22:04:24 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我以python3 myapp.py的形式运行我的代码时,它工作得很好,但是每当我使用gunicorn -w 4 myapp:index -b 10.91.1.230:5055 &

它抛出

ion@aurora:~/TNQ$ [2019-02-05 14:26:34 +0530] [27107] [INFO] Starting 
gunicorn 19.9.0
..............
27116
[2019-02-05 14:26:38 +0530] [27113] [ERROR] Error handling request /
Traceback (most recent call last):
  File "/home/ion/.local/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/home/ion/.local/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/home/ion/TNQ/myapp.py", line 16, in index
    f = request.files['file']
  File "/home/ion/.local/lib/python3.6/site-packages/werkzeug/local.py", line 347, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/home/ion/.local/lib/python3.6/site-packages/werkzeug/local.py", line 306, in _get_current_object
    return self.__local()
  File "/home/ion/.local/lib/python3.6/site-packages/flask/globals.py", line 37, in _lookup_req_object
    raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.

在我的app.py在

^{pr2}$

我需要把代码放在gunicorn上,以便在线程上使用它。你知道为什么不能用吗?在


Tags: inpyselfhomerequestlibpackageslocal
1条回答
网友
1楼 · 发布于 2024-04-18 22:04:24

它不起作用,因为index不是wsgi app-这不足以使函数具有正确的签名。请执行以下操作:

gunicorn -w 4 myapp:app -b 10.91.1.230:5055 &

当您运行python3 myapp.py时,您不会发现任何问题,因为flask的开发服务器app.run不需要wsgi应用程序,而gunicorn需要。话虽如此,您不妨继续删除index签名。在

相关问题 更多 >