Я начал с той же проблемы, что и в этот вопрос .Как показывает один из ответов, можно избежать этой конкретной проблемы, запустив приложение без SSL.Но поскольку Facebook настроен на применение https для приложений всего за несколько дней (1 октября 2011 г.), это решение кажется недолгим.Сначала я попытался включить ssl в app.run (около строки 149 в exampleapp.py
. Примерно так:
app.run(host='0.0.0.0', port=port, ssl_context='adhoc')
При первой попытке не удалось запуститься при появлении жалобы на отсутствующий модуль OpenSSL. Нашел пару предложенийо том, как исправить это там, в сети, и выбрать сделать:
(myapp)$ pip install pyopenssl
Теперь нет претензий при запуске:
(myapp)$ foreman start
10:35:25 web.1 | started with pid 26934
10:35:26 web.1 | * Running on https://0.0.0.0:5000/
10:35:26 web.1 | * Restarting with reloader
Но затем при попытке получить доступ к приложению:
10:35:31 web.1 | ----------------------------------------
10:35:31 web.1 | Exception happened during processing of request from ('127.0.0.1', 61118)
10:35:31 web.1 | Traceback (most recent call last):
10:35:31 web.1 | File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
10:35:31 web.1 | self.process_request(request, client_address)
10:35:31 web.1 | File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 310, in process_request
10:35:31 web.1 | self.finish_request(request, client_address)
10:35:31 web.1 | File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 323, in finish_request
10:35:31 web.1 | self.RequestHandlerClass(request, client_address, self)
10:35:31 web.1 | File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 639, in __init__
10:35:31 web.1 | self.handle()
10:35:31 web.1 | File "path_to_myapp/lib/python2.7/site-packages/werkzeug/serving.py", line 189, in handle
10:35:31 web.1 | return rv
10:35:31 web.1 | UnboundLocalError: local variable 'rv' referenced before assignment
10:35:31 web.1 | ----------------------------------------
10:35:31 web.1 | Unhandled exception in thread started by <function inner at 0x10139e050>
10:35:31 web.1 | Traceback (most recent call last):
10:35:31 web.1 | File "path_to_myapp/lib/python2.7/site-packages/werkzeug/serving.py", line 599, in inner
10:35:31 web.1 | passthrough_errors, ssl_context).serve_forever()
10:35:31 web.1 | File "path_to_myapp/lib/python2.7/site-packages/werkzeug/serving.py", line 355, in serve_forever
10:35:31 web.1 | HTTPServer.serve_forever(self)
10:35:31 web.1 | File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 227, in serve_forever
10:35:31 web.1 | self._handle_request_noblock()
10:35:31 web.1 | File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 287, in _handle_request_noblock
10:35:31 web.1 | self.shutdown_request(request)
10:35:31 web.1 | File "/usr/local/Cellar/python/2.7.1/lib/python2.7/SocketServer.py", line 459, in shutdown_request
10:35:31 web.1 | request.shutdown(socket.SHUT_WR)
10:35:31 web.1 | TypeError: shutdown() takes exactly 0 arguments (1 given)
Что с этим делать? Это неправильная версия Python или просто я неправильно понял какую-то другую фундаментальную вещь?