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

VS Code中Python Flask读取传感器数据时COM17端口权限错误

解决Windows下Flask访问串口COM17的权限拒绝问题

排查方向和解决办法

  • 给Flask进程添加管理员权限
    Windows系统下串口访问需要较高权限,你单独运行串口代码时的终端可能已具备管理员权限,但启动Flask时未获取该权限。右键点击终端/命令提示符,选择「以管理员身份运行」,再执行flask run或python app.py命令尝试。

  • 检查串口是否被其他进程占用
    虽然单独运行串口代码正常,但整合Flask后可能存在端口未正确释放的情况。打开「设备管理器」→「端口(COM和LPT)」,找到COM17右键选择「属性」→「端口设置」→「高级」,查看是否有其他进程占用该端口。也可使用Process Explorer工具定位占用COM17的进程,结束后重启Flask。

  • 关闭Flask调试模式或优化串口初始化逻辑
    Flask开启调试模式(debug=True)时会启动两个进程,第一个进程已打开串口,第二个进程尝试再次打开时会触发权限拒绝。可直接关闭调试模式,或在代码中确保串口仅初始化一次:

    import serial
    from flask import Flask
    
    app = Flask(__name__)
    ser = None
    
    @app.before_first_request
    def init_serial():
        global ser
        # 替换为你的实际串口参数
        ser = serial.Serial('COM17', baudrate=9600, timeout=1)
    
    # 你的路由与数据展示逻辑...
    
    if __name__ == '__main__':
        app.run(debug=False)
    
  • 排查虚拟环境权限问题
    若使用虚拟环境,可能虚拟环境内的Python进程无串口访问权限。可尝试在系统全局Python环境下运行Flask代码,或找到虚拟环境下的python.exe,右键→「属性」→「兼容性」,勾选「以管理员身份运行此程序」。

  • 调整Windows本地组策略权限
    运行gpedit.msc打开「本地组策略编辑器」,依次进入「计算机配置」→「Windows设置」→「安全设置」→「本地策略」→「用户权限分配」,找到「串行端口的访问权限」,将你的用户账户添加至列表,重启电脑后再测试。


内容的提问来源于stack exchange,提问作者3B_16_AhmadNur_D4Mekatronika

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:05:25