问题

在这里插入图片描述

importError

导包出错,
不能从一个当中导入某个模块?

例如:ImportError: cannot import name ‘deprecated’ from ‘typing_extensions’

分析

可能的原因
  1. 拼写或大小写错误
  2. 导入的模块不存在
  3. 导入的成员不存在于模块中
  4. 循环导入
  5. Python环境出错

解决

实际上,我出现的问题是:依赖版本问题

一个非常经典且令人头疼的**依赖版本冲突(Dependency Conflict)**问题,俗称“环境崩了”。
这不是你的代码写错了,而是你安装的 PyTorch 版本和你环境里的 typing_extensions 这个库的版本不兼容。

  • 报错地点:D:…\site-packages\torch\cuda_init_.py
    • 是 PyTorch 内部试图调用 CUDA 模块时崩的。
  • 报错内容:ImportError: cannot import name ‘deprecated’ from ‘typing_extensions’
  • 真相:你电脑上的 PyTorch 比较新,它需要用到 typing_extensions 库里的 deprecated 功能。但是,你环境里安装的 typing_extensions 版本太老了,里面还没有 deprecated 这个东西。
    在这里插入图片描述
我的问题解决
  1. 查询版本
    在这里插入图片描述

  2. 有它,建议先删除
    在这里插入图片描述

  3. 再次卸载
    在这里插入图片描述
    在这里插入图片描述
    一直执行,直到终端提示:
    WARNING: Skipping typing_extensions as it is not installed. (提示找不到包为止)。

  4. 物理检查(这一步是关键!)
    在这里插入图片描述
    如果有 typing_extensions.py 这个文件,直接手动右键删除! 这一步能解决 99% 的顽固问题。
    在这里插入图片描述在这里插入图片描述
    conda install typing_extensions
    在这里插入图片描述在这里插入图片描述

更新 出错的库:
pip install --upgrade typing_extensions
或者使用 conda(如果你主要用 conda 管理):
conda update typing_extensions

总结

一个常见的Python错误,它可能由多种原因引起。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐