将我的ip地址连接到flask服务器时出错-ubuntu ipython
我正在尝试用AmazonEC2实例创建的IP地址连接我自己的服务器。但是,每当我输入此代码时,都会收到一条错误消息。代码是:将我的ip地址连接到flask服务器时出错-ubuntu ipython,python,ubuntu,flask,ipython,Python,Ubuntu,Flask,Ipython,我正在尝试用AmazonEC2实例创建的IP地址连接我自己的服务器。但是,每当我输入此代码时,都会收到一条错误消息。代码是: from flask import Flask, request visitor_counter = 0 webserver = Flask("MyFirstWebServer") import datetime import time @webserver.route('/') def hello_world(): # stop_server()
from flask import Flask, request
visitor_counter = 0
webserver = Flask("MyFirstWebServer")
import datetime
import time
@webserver.route('/')
def hello_world():
# stop_server()
return 'Hello James, it is now ' + str(datetime.date.today())
@webserver.route('/testSU')
def hello_su():
# stop_server()
global visitor_counter
visitor_counter += 1
return 'Hello! You are visitor #{i}'.format(i=visitor_counter)
def start_server():
global visitor_counter
visitor_counter = 0
webserver.run(host='aaa.bbb.cc.ddd', port=5000)
return
def stop_server():
shutdown_after_request = request.environ.get('werkzeug.server.shutdown')
shutdown_after_request()
return
start_server()
我收到的错误消息是“OSError:[Errno 99]无法分配请求的地址”。以下是我在运行python笔记本时收到的错误消息的详细信息:
OSError Traceback (most recent call last)
<ipython-input-4-2dda11743df7> in <module>()
----> 1 start_server()
<ipython-input-1-dcbe603433f4> in start_server()
30 global visitor_counter
31 visitor_counter = 0
---> 32 webserver.run(host='aaa.bbb.cc.ddd', port=5000)
33 return
34
/usr/local/lib/python3.5/dist-packages/flask/app.py in run(self, host, port, debug, **options)
839 options.setdefault('use_debugger', self.debug)
840 try:
--> 841 run_simple(host, port, self, **options)
842 finally:
843 # reset the first request information if the development server
/usr/local/lib/python3.5/dist-packages/werkzeug/serving.py in run_simple(hostname, port, application, use_reloader, use_debugger, use_evalex, extra_files, reloader_interval, reloader_type, threaded, processes, request_handler, static_files, passthrough_errors, ssl_context)
706 reloader_type)
707 else:
--> 708 inner()
709
710
/usr/local/lib/python3.5/dist-packages/werkzeug/serving.py in inner()
668 processes, request_handler,
669 passthrough_errors, ssl_context,
--> 670 fd=fd)
671 if fd is None:
672 log_startup(srv.socket)
/usr/local/lib/python3.5/dist-packages/werkzeug/serving.py in make_server(host, port, app, threaded, processes, request_handler, passthrough_errors, ssl_context, fd)
562 else:
563 return BaseWSGIServer(host, port, app, request_handler,
--> 564 passthrough_errors, ssl_context, fd=fd)
565
566
/usr/local/lib/python3.5/dist-packages/werkzeug/serving.py in __init__(self, host, port, app, handler, passthrough_errors, ssl_context, fd)
474 socket.SOCK_STREAM)
475 port = 0
--> 476 HTTPServer.__init__(self, (host, int(port)), handler)
477 self.app = app
478 self.passthrough_errors = passthrough_errors
/usr/lib/python3.5/socketserver.py in __init__(self, server_address, RequestHandlerClass, bind_and_activate)
438 if bind_and_activate:
439 try:
--> 440 self.server_bind()
441 self.server_activate()
442 except:
/usr/lib/python3.5/http/server.py in server_bind(self)
136 def server_bind(self):
137 """Override server_bind to store the server name."""
--> 138 socketserver.TCPServer.server_bind(self)
139 host, port = self.socket.getsockname()[:2]
140 self.server_name = socket.getfqdn(host)
/usr/lib/python3.5/socketserver.py in server_bind(self)
452 if self.allow_reuse_address:
453 self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
--> 454 self.socket.bind(self.server_address)
455 self.server_address = self.socket.getsockname()
456
OSError回溯(最近一次调用)
在()
---->1启动服务器()
在start_server()中
30全球访客服务台
31访客_计数器=0
--->32 webserver.run(host='aaa.bbb.cc.ddd',port=5000)
33返回
34
/运行中的usr/local/lib/python3.5/dist-packages/flask/app.py(self、host、port、debug、**选项)
839 options.setdefault('use_debugger',self.debug)
840尝试:
-->841简单运行(主机、端口、自身,**选项)
842最后:
843#如果开发服务器
/run_simple中的usr/local/lib/python3.5/dist-packages/werkzeug/service.py(主机名、端口、应用程序、使用_重载器、使用_调试器、使用_evalex、额外_文件、重载间隔、重载类型、线程化、进程、请求_处理程序、静态_文件、传递_错误、ssl_上下文)
706换料机(U型)
707其他:
-->708内部()
709
710
/内部()中的usr/local/lib/python3.5/dist-packages/werkzeug/service.py
668进程,请求处理程序,
669传递错误、ssl上下文、,
-->670 fd=fd)
671如果fd为无:
672日志启动(srv.套接字)
/make_服务器中的usr/local/lib/python3.5/dist-packages/werkzeug/service.py(主机、端口、应用程序、线程、进程、请求处理程序、传递错误、ssl_上下文、fd)
562其他:
563返回BaseWSGIServer(主机、端口、应用程序、请求处理程序、,
-->564传递错误,ssl上下文,fd=fd)
565
566
/usr/local/lib/python3.5/dist-packages/werkzeug/service.py in_u__________(self、主机、端口、应用程序、处理程序、直通错误、ssl_上下文、fd)
474插座(插座流)
475端口=0
-->476 HTTPServer.uuuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
477 self.app=app
478 self.passthrough\u errors=passthrough\u errors
/usr/lib/python3.5/socketserver.py in_uuuuinit_uuu(self、服务器地址、RequestHandlerClass、绑定和激活)
438如果绑定_和_激活:
439试试:
-->440 self.server_bind()
441 self.server_activate()
442除:
/服务器绑定(self)中的usr/lib/python3.5/http/server.py
136 def服务器绑定(自):
137“重写服务器\u绑定以存储服务器名称。”“”
-->138 socketserver.TCPServer.server\u绑定(self)
139主机,端口=self.socket.getsockname()[:2]
140 self.server_name=socket.getfqdn(主机)
/服务器绑定中的usr/lib/python3.5/socketserver.py(self)
452如果self.allow\u reuse\u地址:
453 self.socket.setsockopt(socket.SOL_socket,socket.SO_REUSEADDR,1)
-->454 self.socket.bind(self.server\u地址)
455 self.server_address=self.socket.getsockname()
456
我使用终端查看端口5000上是否有其他服务器/程序打开,但没有。这里有什么问题吗?这段代码适合我,请尝试一下
import os
from flask import Flask
__author__ = 'Rajshekhar Horatti'
app = Flask(__name__)
APP_ROOT = os.path.dirname(os.path.abspath(__file__))
@app.route("/")
def main():
return "hello world"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080, debug=True)
主机应为
host=0.0.0.0
,并检查您已激活的端口,并指定该端口aaa.bbb.cc.ddd
可能未映射到分配给该框的IP地址。大多数情况下,您希望将其设置为localhost
或0.0.0
。