OSError:[Erno 10048]尝试绑定地址时出错


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)

我收到这个错误,不知道如何对这个问题进行排序。

感谢您的任何帮助

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

  1. sudo kill"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

来自文档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)

最新更新