OSError:尝试绑定到地址时出现[Errno 10048]错误

时间:2018-12-05 11:22:50

标签: python aiohttp

OSError: [Errno 10048] error while attempting to bind on address ('0.0.0.0', 8080): only one usage of e
ach socket address (protocol/network address/port) is normally permitted

我已经安装了aiohttp,并且如本教程中所述, 我试图使用运行脚本 python main.py命令

from aiohttp import web
async def index(request):
    return web.Response(text='Hello Aiohttp!')
app = web.Application()
web.run_app(app)

我收到此错误,并且不知道如何解决此问题。

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

从文档https://aiohttp.readthedocs.io/en/stable/web_reference.html#aiohttp.web.run_app中开始。您可以将端口作为

from aiohttp import web
async def index(request):
    return web.Response(text='Hello Aiohttp!')
app = web.Application()
web.run_app(app, port=9090)

答案 1 :(得分:1)

问题是在8080端口号上已经在运行某些进程。 解决问题的方法有两种

  1. sudo杀死`sudo lsof -t -i:8080`(如果您正在使用ubuntu)或 sudo kill $(sudo lsof -t -i:8080)

  2. python -m aiohttp.web -H localhost -P 5050 package.module.init_func

    package.module.init_func应该是可导入的可调用对象,它接受任何未解析的命令行参数的列表,并在设置后返回一个Application实例:

    def init_function(argv):
        app = web.Application()
        app.router.add_route("GET", "/", index_handler)
        return app
    

希望上述解决方案可能会对您有所帮助。

您可以阅读aiohttp的文档来进一步了解它。 https://aiohttp.readthedocs.io/en/v0.21.5/web.html