You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Python Bottle Web框架中端口已被占用的错误?

解决Bottle框架中端口已被占用的问题

嘿,我来帮你搞定这个端口被占用的问题!你遇到的情况很常见——默认的8080端口大概率已经被其他程序(比如另一个服务、之前没关干净的Bottle进程)占用了,下面几个办法都能解决:

1. 手动指定一个未被占用的端口

最简单的方式就是在启动Bottle的时候,给run()方法指定一个新的端口号,比如换8081、9000这类没被用的端口:

from bottle import route, run
@route('/')
def index():
    return "olá pessoas"
if __name__ == '__main__':
    run(port=8081)  # 替换成你想使用的空闲端口

这样启动后,服务就会跑在你指定的端口上,不会再和其他程序抢8080了。

2. 释放被占用的8080端口

如果你非要用8080端口,可以先找出占用它的进程,然后结束掉:

  • Linux/macOS终端:先用下面的命令查看占用进程:
    lsof -i :8080
    
    找到输出里的PID(进程ID),再用kill命令杀掉它:
    kill -9 <你的PID>
    
  • Windows系统:打开命令提示符,输入:
    netstat -ano | findstr :8080
    
    找到对应的PID后,打开任务管理器,在“详细信息”里找到这个PID的进程,右键结束任务即可。

3. 让Bottle自动分配空闲端口

不想手动选端口?可以让Bottle自动找一个可用的端口,只需要把port设为0:

from bottle import route, run
@route('/')
def index():
    return "olá pessoas"
if __name__ == '__main__':
    server = run(port=0, debug=True)
    # 打印出实际使用的端口地址
    print(f"服务已启动,访问地址:http://{server.srv[1][0]}:{server.srv[1][1]}")

启动后,Bottle会自动选一个空闲端口,你直接用打印出来的地址访问就行。

4. 检查残留的Bottle进程

有时候你之前启动的Bottle程序可能没完全关闭,后台进程还在占用端口。用上面的进程查找命令,把残留的Bottle进程杀掉,再重新启动你的程序就好啦。

内容的提问来源于stack exchange,提问作者Reinaldo Chaves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:58:55