AttributeError: module ‘copy’ has no attribute ‘deepcopy’
菜鸟问题记录和求助
初学编程和python,调用包的时候总会出现啼笑皆非的问题
问题描述:
调用matplotlib包时出现问题,具体报错如下:
“d:\Users\Ying\AppData\Local\Programs\Python\Python310\lib\xml\etree\ElementTree.py”, line 2083, in from _elementtree import * AttributeError: module ‘copy’ has no attribute ‘deepcopy’
原因分析:
新手遇到问题总是会下意识寻找chatgpt解决,但有的时候chatgpt并不是那么可靠,还是需要自己去动脑
chatgpt猜测原因如下:
这个问题似乎是由于matplotlib包的某个子模块导入了PIL,而PIL包又导入了defusedxml,进而引发了冲突。
你可以通过以下方式检查Python环境中的其他依赖项是否存在冲突或需要更新:
1. 查看已安装的包列表: 在命令行中输入 pip list,它会列出当前Python环境中已安装的所有包及其版本信息。
2. 检查依赖项版本: 对于你的项目,可以查看其依赖项列表,并确保所有的依赖项都是兼容的版本。你可以查看项目中的 requirements.txt 文件或者其他指定依赖项的地方。
3. 更新过期的包: 如果发现某些包的版本过期了,你可以通过 pip install --upgrade <package-name> 命令来更新它们。
4. 清理缓存和过期包: 使用 pip cache purge 命令可以清理缓存,并使用 pip autoremove 可以移除未使用的依赖项。
5. 虚拟环境: 如果你使用了虚拟环境,确保你在正确的虚拟环境中进行操作,以避免与其他项目的依赖项产生冲突。
通过这些步骤,你可以更好地管理Python环境中的依赖项,并解决可能存在的冲突问题。
反复询问chatgpt都是认为包的版本有冲突或者配置环境有问题,我重新装了matplotlib和pillow,把所有包都更新了最新版本,甚至差一点重新配置环境。
解决方案:
最后通过浏览器搜索,发现别人也有类似问题。蓦然回首,那人就在灯火阑珊处。就是和这个报错py同文件目录下的copy.py,我将其重命名避免冲突就好了。
新手没有经验,不知道如何避免这种问题?或者这种问题又是如何出现的?希望大佬解答。