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

Python3.11运行Flask项目报错:collections无MutableSequence属性

解决Python 3.11下flask_navigation的AttributeError问题

报错原因

Python 3.10及以上版本将collections.MutableSequence等抽象基类迁移到了collections.abc模块,而旧版flask_navigation未适配这一变更,导致在Python 3.11中运行时触发AttributeError。

可行解决方案

1. 降级Python到3.9.x(最快最省心的方案)

既然项目在Python 3.9.1中能正常运行,直接给项目切换到Python 3.9的虚拟环境即可:

# 安装Python 3.9及虚拟环境工具
sudo apt update && sudo apt install python3.9 python3.9-venv
# 进入项目目录,创建基于Python3.9的虚拟环境
python3.9 -m venv venv39
# 激活虚拟环境
source venv39/bin/activate
# 重新安装项目依赖
pip install -r requirements.txt

之后用这个虚拟环境运行python app.py即可恢复正常。

2. 修改flask_navigation包的代码(适配Python 3.11)

只改import collections为import collections.abc没用,需要修正引用路径:

  1. 定位到虚拟环境中的flask_navigation目录:/root/valorant-hours-played/venv/lib/python3.11/site-packages/flask_navigation/
  2. 编辑item.py文件:
    • 将顶部的import collections替换为:
      from collections.abc import MutableSequence
      
    • 同时把类定义行的collections.MutableSequence改为MutableSequence
      或者另一种方式,保留原有代码结构:
    import collections.abc as collections
    
  3. 检查其他文件(如navbar.py、api.py等),如果有使用collections下的抽象基类(比如MutableMapping等),按同样方式修改。

注意:这种修改是临时的,下次重新安装flask_navigation会被覆盖,建议修改后将包本地安装,或者使用fork后的版本。

3. 升级或替换flask_navigation

  • 先尝试升级包,看是否有适配Python 3.10+的版本:
    pip install --upgrade flask_navigation
    
  • 如果升级后问题依旧,说明该包可能已停止维护,可以考虑替换为其他活跃维护的Flask导航扩展,比如flask-menu,或者自己实现简单的导航逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:28:29