Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将我的ip地址连接到flask服务器时出错-ubuntu ipython_Python_Ubuntu_Flask_Ipython - Fatal编程技术网

将我的ip地址连接到flask服务器时出错-ubuntu ipython

将我的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()

我正在尝试用AmazonEC2实例创建的IP地址连接我自己的服务器。但是,每当我输入此代码时,都会收到一条错误消息。代码是:

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