news 2026/6/23 22:06:39

ImportError: cannot import name ‘OrderedDict‘ from ‘typing‘ 问题解决

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ImportError: cannot import name ‘OrderedDict‘ from ‘typing‘ 问题解决

ImportError: cannot import name ‘OrderedDict’ from ‘typing’ 问题解决

运行model.py时报错了 E:\004---CSDN_resource>C:\Users\cxx\anaconda3\Scripts\activate&&conda activate python37(python37)E:\004---CSDN_resource>C:\Users\cxx\anaconda3\envs\python37\python.exe e:/004---CSDN_resource/02_resnet50_image_classification/model.py Traceback(most recent call last): File"e:/004---CSDN_resource/02_resnet50_image_classification/model.py", line3,in<module>from torchvisionimportmodels File"C:\Users\cxx\anaconda3\envs\python37\lib\site-packages\torchvision\__init__.py", line5,in<module>from torchvisionimportdatasets, io, models, ops, transforms, utils File"C:\Users\cxx\anaconda3\envs\python37\lib\site-packages\torchvision\models\__init__.py", line16,in<module>from .maxvitimport* File"C:\Users\cxx\anaconda3\envs\python37\lib\site-packages\torchvision\models\maxvit.py", line3,in<module>from typingimportAny, Callable, List, Optional, OrderedDict, Sequence, Tuple ImportError: cannotimportname'OrderedDict'from'typing'(C:\Users\cxx\anaconda3\envs\python37\lib\typing.py)(python37)E:\004---CSDN_resource>

这个报错非常关键,而且你其实已经踩到了一个“版本地雷”
结论我先给你:

不是你的model.py写错了
也不是 ResNet50 的问题
是 Python 3.7 + torchvision 版本不兼容导致的

下面我一步一步把原因、判断依据、以及最稳妥的解决方案给你讲清楚,你也可以把这段内容整理进博客,作为“真实踩坑记录”。


文章目录

    • ImportError: cannot import name 'OrderedDict' from 'typing' 问题解决
    • 一、报错本质是什么?
      • 关键点 🔍
    • 二、为什么“你什么都没用 maxvit,却还是报错?”
    • 三、你的环境组合为什么“必炸”
      • 官方兼容关系(简化版)
    • 四、最稳妥的 3 种解决方案(按推荐顺序)
      • ✅ 方案一(强烈推荐):单独为资源②建 Python 3.8 环境
        • 1️⃣ 新建环境
        • 2️⃣ 安装匹配版本(CPU 版即可)
        • 3️⃣ 再运行 model.py
      • ⚠️ 方案二(不推荐,但可用):强行降级 torchvision
      • ❌ 方案三(不建议):改 torchvision 源码
    • 五、你现在该怎么选?(给你一个“资源作者级建议”)

一、报错本质是什么?

你的核心报错是这一句:

ImportError: cannot import name 'OrderedDict' from 'typing'

而它出现在这里:

torchvision\models\maxvit.py from typing import Any, Callable, List, Optional, OrderedDict, Sequence, Tuple

关键点 🔍

  • OrderedDict不属于 typing 模块(Python 3.7)
  • 它属于collectionstyping_extensions
  • 新版 torchvision 假设你使用的是较新的 Python

👉也就是说:你现在的 Python 版本,已经“跟不上”你装的 torchvision 了。


二、为什么“你什么都没用 maxvit,却还是报错?”

这是一个非常容易让人迷糊的地方。

你写的是:

fromtorchvisionimportmodels

但实际上 torchvision 内部会:

importtorchvision.models.maxvit

也就是说:

哪怕你只想用 ResNet50,只要 torchvision 版本偏新,它就会加载 maxvit。

而 maxvit 是Python ≥ 3.8 时代的模型


三、你的环境组合为什么“必炸”

你现在的关键信息是:

  • Python:3.7
  • Torch:1.13.x
  • Torchvision:0.14+(隐含)

这是一个不安全组合

官方兼容关系(简化版)

PythonTorchTorchvision结论
3.7≤1.10≤0.11✅ 稳定
3.71.12 / 1.130.13 / 0.14❌ 高概率炸
≥3.81.130.14✅ 稳定

👉你正好处在“官方已经不太照顾”的区间。


四、最稳妥的 3 种解决方案(按推荐顺序)

✅ 方案一(强烈推荐):单独为资源②建 Python 3.8 环境

这是工程上最干净、博客里也最合理的方案。

1️⃣ 新建环境
conda create -n resnet50_py38python=3.8-y conda activate resnet50_py38
2️⃣ 安装匹配版本(CPU 版即可)
pipinstalltorch==1.13.1torchvision==0.14.1

如果你后面要讲 GPU,可以再单独开一篇博客,不要现在纠缠。

3️⃣ 再运行 model.py
python model.py

问题会直接消失


⚠️ 方案二(不推荐,但可用):强行降级 torchvision

如果你必须留在 Python 3.7(比如资源①已经这样),那就:

pip uninstall torchvision -y pipinstalltorchvision==0.11.3

并且 Torch 最好一起降:

pipinstalltorch==1.10.2torchvision==0.11.3

📌 缺点:

  • ResNet50 还能用
  • 但你未来写博客会一直受版本限制
  • 不利于后续资源扩展

❌ 方案三(不建议):改 torchvision 源码

网上有人会教你:

fromcollectionsimportOrderedDict

然后改maxvit.py

⚠️这是非常不专业的做法,也不适合教学资源。


五、你现在该怎么选?(给你一个“资源作者级建议”)

站在你现在这个阶段,我明确建议你:

资源①(模板)
允许 Python 3.7,偏“基础工程”

资源②(ResNet50 实战)
👉升级到 Python 3.8,作为“进阶实战”

这在博客里反而是一个加分点,你可以这样写:

“从这个资源开始,我建议使用 Python 3.8,这是当前 PyTorch 工程更主流、也更稳定的选择。”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 17:23:19

9大高级RAG技术详解:提升大模型检索效果的实战指南

文章介绍9种优化RAG系统的高级技术&#xff0c;包括智能文本分块、重新排序、元数据利用、混合搜索等&#xff0c;解决基本RAG系统的嘈杂结果和不相关上下文问题。文章详细说明如何使用Meilisearch、LangChain等工具实现这些策略&#xff0c;以及如何评估效果&#xff0c;帮助开…

作者头像 李华
网站建设 2026/6/23 15:59:26

Langchain-Chatchat移动设备安全管理知识库

Langchain-Chatchat移动设备安全管理知识库 在企业IT运维的日常场景中&#xff0c;一个常见的难题是&#xff1a;现场工程师面对突发的安全事件——比如员工手机丢失或平板电脑感染恶意软件——往往无法立即查阅冗长的安全手册&#xff0c;也难以在无网络环境下获取准确的操作…

作者头像 李华
网站建设 2026/6/23 15:18:14

Langchain-Chatchat JWT令牌机制知识库构建

Langchain-Chatchat JWT令牌机制与本地知识库构建解析 在企业数字化转型加速的今天&#xff0c;如何让沉睡在PDF、Word和内部文档中的知识“活起来”&#xff0c;成为提升组织效率的关键命题。尤其在金融、医疗、法律等高合规要求行业&#xff0c;数据不出内网已成为硬性底线。…

作者头像 李华
网站建设 2026/6/23 8:58:45

Langchain-Chatchat文件共享权限管理问答系统

Langchain-Chatchat 文件共享权限管理问答系统 在企业知识管理的现实场景中&#xff0c;一个常见的困境是&#xff1a;技术文档堆积如山&#xff0c;新员工入职却无从下手&#xff1b;HR制度频繁更新&#xff0c;但每次都被追问“年假怎么算”&#xff1b;研发团队积累了上百份…

作者头像 李华
网站建设 2026/6/23 15:13:08

Langchain-Chatchat IOC指标查询问答工具

Langchain-Chatchat IOC指标查询问答工具 在网络安全事件频发的今天&#xff0c;威胁情报分析已成为安全团队日常工作的核心环节。每当一次新的攻击曝光&#xff0c;分析师往往需要从数十份PDF格式的APT报告中手动提取恶意IP、C2域名和文件哈希等IOC&#xff08;Indicators of …

作者头像 李华
网站建设 2026/6/23 5:52:04

Langchain-Chatchat渗透测试报告生成辅助工具

Langchain-Chatchat&#xff1a;构建私有化渗透测试报告生成系统的实践探索 在网络安全攻防对抗日益激烈的今天&#xff0c;渗透测试作为企业安全建设的关键环节&#xff0c;正面临效率与规范性的双重挑战。一份高质量的渗透测试报告不仅需要详实的技术细节、严谨的风险评估&am…

作者头像 李华