Python3使用csv模块时出现循环import报错问题求解
问题产生原因
这个报错是典型的命名冲突导致的循环导入问题:
Python导入模块时会优先检索当前工作目录下的同名文件,你将自己的脚本命名为csv.py,刚好和Python官方标准库的csv模块重名。当你执行脚本、运行import csv语句时,Python导入的不是标准库的csv模块,而是你自己写的这个csv.py脚本本身。
此时脚本还处于初始化过程中,你的脚本里并没有定义DictReader属性,且你自己的脚本第一行又要执行import csv,就形成了循环导入,最终抛出属性不存在的报错。
解决方法
- 直接修改你的脚本文件名,不要和Python标准库/已安装的第三方库重名即可,比如修改为
read_cars_csv.py。 - 如果修改文件名后仍有报错,删除当前目录下生成的
__pycache__缓存目录后再次执行即可。
额外提示:后续编写Python脚本时,注意不要使用
json、requests、math这类常用库名作为脚本文件名,否则都会触发同类导入错误。
内容的提问来源于stack exchange,提问作者Jordi
相关产品推荐
相关产品推荐

