首页 > 其他分享 >AttributeError: module ‘collections‘ has no attribute ‘Sequence‘

AttributeError: module ‘collections‘ has no attribute ‘Sequence‘

时间:2024-04-02 22:33:25浏览次数:19  
标签:abc no Python attribute Sequence 导入 collections 版本

在Python 3.10及其以后的版本中,collections 模块中的 Sequence 类已经被移动到了 collections.abc 子模块中。这是因为在Python 3.3版本时,collections.abc 就被引入作为抽象基类(ABCs)的正式家园,而 collections 模块本身被设计为主要包含具体的容器类型(如 deque 和 Counter)。从Python 3.10开始,尝试直接从 collections 模块导入 Sequence 或其他ABCs将会导致 ImportError

如果你的代码中有如下导入语句:

from collections import Sequence

在Python 3.10及更高版本中,你需要将其修改为:

from collections.abc import Sequence

这个修改将确保你的代码能够正确导入 Sequence ABC,并且与Python 3.10及以后的版本兼容。

如果你需要确保你的代码在多个Python版本之间都能正常工作,你可以考虑使用条件导入

try:  
    from collections.abc import Sequence  
except ImportError:  
    # 兼容Python 3.9及以下版本  
    from collections import Sequence

这段代码首先尝试从 collections.abc 导入 Sequence,如果失败(意味着Python版本低于3.10),则会回退到从 collections 导入。这样就能确保代码在旧版Python上也能正常运行。不过,随着时间的推移,支持旧版本的Python可能会变得不切实际,所以通常建议升级到最新的Python版本,并使用相应的模块路径。

同理,

  • Container
  • Iterable
  • Iterator
  • Generator
  • Reversible
  • Sized
  • Collection
  • Callable
  • Sequence
  • MutableSequence
  • Mapping
  • MutableMapping
  • Set
  • MutableSet
  • MappingView
  • KeysView
  • ItemsView
  • ValuesView

这些抽象基类从collections模块移到了collections.abc。因此,如果你正在使用这些抽象基类,并且你的代码是在Python 3.3或更高版本上运行,你应该从collections.abc导入它们,而不是直接从collections导入

标签:abc,no,Python,attribute,Sequence,导入,collections,版本
From: https://blog.csdn.net/a2313179618/article/details/137186741

相关文章

  • Notes-02年Fan-2002-Analysis of guided resonances in photonic crystal slabs-BIC的
    Notes-02年Fan-2002-Analysisofguidedresonancesinphotoniccrystalslabs目录Notes-02年Fan-2002-Analysisofguidedresonancesinphotoniccrystalslabs共振的含义就是:在光锥内,发光、辐射。引言guidedmodeguidedmoderesonance--Similartotheguidedmode,a......
  • 洛谷 P1008 [NOIP1998 普及组] 三连击
    这道题我们可以用桶排序来做,代码如下:#include<bits/stdc++.h>//万能头 usingnamespacestd;//好习惯 inta[10];//一个桶数组,来确定是否有重复的 intmain(){   ints1,s2,s3;//定三个函数,用于判断    intsum=0;//用于判断数字是否重复    for(int......
  • DMKD: IMPROVING FEATURE-BASED KNOWLEDGE DISTILLATION FOR OBJECT DETECTION VIA DU
    摘要最近主流的掩模蒸馏方法是通过从教师网络的特征图中重建学生网络的选择性掩模区域来实现的。在这些方法中,需要适当的选择掩模区域,使重构的特征像教师特征一样具有足够的识别和表示能力。然而,以前的掩模蒸馏方法只关注空间掩模,使得得到的掩模区域偏向于空间重要性,而没有......
  • Node打开选择文件夹弹框
    Node打开选择文件夹弹框发布于 2023-03-2910:39:122.7K0举报文章被收录于专栏:clzNode打开选择文件夹弹框前言用脚手架的那套东西写了一个工具,但是想要一个用Node去打开选择文件夹弹框的效果,来设置操作根目录。但是,Node本身没有这个API。node执行pytho......
  • InnoDB数据页的探索
    一数据页的结构    我们都知道“页”是InnoDB管理存储空间的基本单位,一个页的大小为16KB。    InnoDB中为了不同的目的设计了不同种类的页,比如存放表空间头部信息的页,存放InsertBuffer信息的页,存放INODE信息的页,存放undo日志信息的页等等等等。我们......
  • nvm安装node
    一、安装nvmlinux安装编辑文件/etc/hosts199.232.68.133raw.githubusercontent.com199.232.68.133user-images.githubusercontent.com199.232.68.133avatars2.githubusercontent.com199.232.68.133avatars1.githubusercontent.com新增上面这一步的目的是为了避免出......
  • nodejs在谷歌浏览器中调试
    一.浏览器开启实验室模式在谷歌浏览器中输入网址<chrome://flags/>,进入页面后打开该功能。二.配置js文件我用的是pycharm,首先对需要调试的js文件进行配置,然后填入--inspect-brk三.调试jsDebugger要调试的js文件,然后在谷歌浏览器中新打开一个标签页,打开开发者工具,等待nod......
  • 报错org.activiti.engine.ActivitiIllegalArgumentException: resource 'bpmn/file.bp
    一、代码段及报错位置1.代码段2.报错文件位置  二、报错原因:org.activiti.engine.ActivitiIllegalArgumentException:resource'bpmn/file.bpmn'notfound  三、解决方法:将resources-->bpmn-->file.bpmn复制粘贴到target-->classess-->bpmn下:......
  • nodeJs 实现视频的转换(超详细教程)
    前段时间拿到一个视频是4k的,没法播放,于是通过node.js  和 ffmpeg实现了视频的转换。在win10系统下实现。所需工具node16.19直接安装ffmpeg-5.1.1-essentials_build解压后重名ffmpeg放到C盘然后配置下环境变量Git-2.42.0.2-64-bit直接安装安装完建一个demo......
  • window下解决Kibana server is not ready yet的问题
    一、问题描述ElasticSearch配置账号密码后,启动Kibana会出现错误,打开http://127.0.0.1:5601/,Kibana会提示:Kibanaserverisnotreadyyet,Kibana启动界面报错如图所示:二、解决方法出现这个错误的原因是,配置文件没有放开kibana的账号密码配置,如图:打开配置文件,在kibana-......