2016-12-16 88 views
0

正如标题所示,我在烧瓶应用试图运行时看到这个错误。GAE/Flask [Errno 13] Permission denied

我在本地使用dev_appserver托管应用程序。

当我访问该网站并尝试运行该应用程序时发生该错误。看起来,由于某种原因,GAE正在尝试并未能绑定套接字。

我怀疑这可能与OAuth2有关。也许它需要一个SSL连接?

我甚至不知道从哪里开始解决这个问题,因为没有任何关于此问题的其他帖子正在经历同样的问题变化。

编辑:下面是控制台的屏幕截图,确认GAE服务器在其他端口上成功启动;仍不能解决它

enter image description here

Traceback (most recent call last): 
    File "C:\Users\XXX\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 240, in Handle 
     handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "C:\Users\XXX\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 299, in _LoadHandler 
     handler, path, err = LoadObject(self._handler) 
    File "C:\Users\XXX\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\runtime\wsgi.py", line 85, in LoadObject 
     obj = __import__(path[0]) 
    File "C:\Users\XXX\PycharmProjects\ad-assignment\main.py", line 51, in <module> 
     app.run() 
    File "C:\Users\XXX\PycharmProjects\ad-assignment\lib\flask\app.py", line 843, in run 
     run_simple(host, port, self, **options) 
    File "C:\Users\XXX\PycharmProjects\ad-assignment\lib\werkzeug\serving.py", line 694, in run_simple 
     inner() 
    File "C:\Users\XXX\PycharmProjects\ad-assignment\lib\werkzeug\serving.py", line 656, in inner 
     fd=fd) 
    File "C:\Users\XXX\PycharmProjects\ad-assignment\lib\werkzeug\serving.py", line 550, in make_server 
     passthrough_errors, ssl_context, fd=fd) 
    File "C:\Users\XXX\PycharmProjects\ad-assignment\lib\werkzeug\serving.py", line 464, in __init__ 
     HTTPServer.__init__(self, (host, int(port)), handler) 
    File "C:\Python27\Lib\SocketServer.py", line 417, in __init__ 
     self.server_bind() 
    File "C:\Python27\Lib\BaseHTTPServer.py", line 108, in server_bind 
     SocketServer.TCPServer.server_bind(self) 
    File "C:\Python27\Lib\SocketServer.py", line 431, in server_bind 
     self.socket.bind(self.server_address) 
    File "C:\Users\XXX\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\dist27\socket.py", line 222, in meth 
     return getattr(self._sock,name)(*args) 
    File "C:\Users\XXX\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\google_appengine\google\appengine\api\remote_socket\_remote_socket.py", line 676, in bind 
     raise _SystemExceptionFromAppError(e) 
error: [Errno 13] Permission denied 
INFO  2016-12-16 21:41:51,631 module.py:788] default: "GET /oauth2callback?code=x/xxxxxxxxxxxxxxxxx HTTP/1.1" 500 - 

代码(如被看见在谷歌的OAuth2 usage guide):

import flask 


app = flask.Flask(__name__) 

@app.route('/') 
def index(): 
    ... 


@app.route('/oauth2callback') 
def oauth2callback(): 
    ... 


if __name__ == 'main': 
    import uuid 
    app.secret_key = str(uuid.uuid4()) 
    app.debug = False 
    app.run() 
+0

您是否试图在本地计算机上运行此操作? – Nilesh

+0

你试过不同的端口吗?端口可能正在使用中,或者在没有根的情况下1024以下。 – kichik

+0

是的,我在本地运行它。因为我只是遵循指南,所以我没有在任何地方设置端口。该应用程序由GAE dev_appserver托管,默认使用端口8080 – Shaffanhoon

回答

1

我们有一个tutorial that walks you through adding Firebase Authentication to your Python app running with Flask。 Firebase身份验证是现在的首选身份工具包。当然,您仍然可以使用纯OAuth2流程,但如果您正在考虑向您的应用程序添加任何内容,Firebase Auth也会提供多供应商身份验证。如果你只是想深入样本代码here on GitHub

如果你只是想坚持直接的OAuth,你可能想看看你自己的Flask代码。 Getting flask to run is pretty easy on App Engine。我的猜测是你打电话给一些你不需要的代码(flask.run()),或者你不是importing your library properly(见appengine_config.py)。

+0

Firebase解决方案看起来像我最终要走的方向,所以我将其标记为答案。非常有帮助,谢谢! – Shaffanhoon

相关问题