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

Flask开启debug模式报错:Failed to import fsevents且出现OSError: [Errno 24] Too many open files

Flask开启debug模式报错:Failed to import fsevents且出现OSError: [Errno 24] Too many open files

这种问题我之前在Mac上折腾Flask debug模式时也碰到过,结合你的环境(macOS 15.5、Python 3.12.7、Flask 3.0.3),给你几个实用的解决方向:

  • 先解决fsevents的依赖兼容问题
    你提到装了MacFSEvents但没用,大概率是版本适配的问题——Python 3.12对部分旧版库的支持有变化,建议直接重装适配性更好的fsevents版本,同时确保watchdog的版本也兼容:

    pip install --force-reinstall fsevents==2.4.0
    pip install --force-reinstall watchdog==4.0.1
    

    这两个版本对Python 3.12和macOS 15的支持比较稳定,你可以试试。

  • 调高Mac的文件描述符限制
    “Too many open files”是因为Flask debug模式的自动重载会监控项目里的大量文件,而Mac默认的文件描述符上限太低,很容易触发这个错误:

    • 临时生效(当前终端会话有效):
      打开终端先运行ulimit -n 4096,再启动Flask debug模式,这个方法最快验证是否有效。
    • 永久生效:
      1. 编辑(如果没有就创建)/etc/sysctl.conf文件,添加两行:
        kern.maxfiles=65536
        kern.maxfilesperproc=65536
        
      2. 运行以下命令让配置立即生效:
        sudo sysctl -w kern.maxfiles=65536
        sudo sysctl -w kern.maxfilesperproc=65536
        
      3. 再根据你用的shell(bash或zsh),编辑~/.bash_profile或~/.zshrc,添加ulimit -n 65536,重启终端后永久生效。
  • 减少Flask debug模式监控的文件数量
    如果你的项目里有大量文件的目录(比如node_modules、虚拟环境venv、缓存目录__pycache__),Flask的重载器会默认监控这些目录,导致打开过多文件。可以在代码里配置排除这些目录:

    from flask import Flask
    import werkzeug
    from werkzeug._reloader import _default_is_excluded
    
    app = Flask(__name__)
    
    if app.debug:
        # 定义需要排除的目录
        excluded_dirs = ('node_modules', 'venv', '__pycache__', '.git')
        # 自定义排除规则
        def custom_exclude(path):
            if any(dir_name in path for dir_name in excluded_dirs):
                return True
            return _default_is_excluded(path)
        # 替换默认的排除逻辑
        werkzeug._reloader._default_is_excluded = custom_exclude
    
  • 临时替代方案:关闭自动重载
    如果上面的方法都暂时没效果,可以先关闭Flask的自动重载功能应急,这样就不会触发文件监控相关的问题:

    flask run --debug --no-reload
    

    缺点是修改代码后需要手动重启服务,但至少能正常用debug模式的其他功能。

你可以先从临时调高ulimit开始测试,这个最快速,再逐步排查依赖或配置问题,应该能解决你的问题。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.09 03:02:57