Mac运行Python HTTP服务器报PermissionError: [Errno 13]权限错误如何解决?
问题原因
- MacOS属于类Unix操作系统,默认1024以下的端口为特权端口,仅拥有root权限的进程可以绑定使用。你代码中指定绑定的80端口属于特权端口,使用普通用户权限运行Python脚本时就会触发权限不足报错。
解决方案
方案1(推荐):更换非特权端口
将代码中绑定的端口修改为1024以上的未被占用端口即可,比如常用的8080、8000端口,修改代码中的对应行:
# 原代码 server = ('localhost', 80) # 修改后 server = ('localhost', 8080)
修改完成后重新运行脚本,访问http://localhost:8080即可正常访问服务。如果8080端口被占用,可以更换为其他1024~65535之间的未占用端口。
方案2:使用root权限运行脚本
如果业务场景必须使用80端口,可以通过sudo命令提权运行Python脚本,假设你的脚本文件名为server.py,运行命令如下:
sudo python3 server.py
运行后输入你的Mac设备登录密码即可启动服务,注意该方案会给脚本赋予root权限,仅建议本地测试场景使用,避免引入安全风险。
验证方式
服务启动成功后,可在终端执行如下命令测试服务是否正常响应:
curl http://localhost:你设置的端口
正常会返回Welcome to COE 550!内容,代表服务运行正常。
内容的提问来源于stack exchange,提问作者Ahmad hamad
相关产品推荐
相关产品推荐

