栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 进行debug的错误most likely due to a circular import

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 进行debug的错误most likely due to a circular import

最近在学习爬虫,准备debug,就是点击那个小瓢虫的时候出现了一行错误

importError: cannot import name 'namedtuple' from partially initialized module 'collections' (most likely due to a circular import)

就是说有循环的导入。

循环导入是什么?

a.py

from b import b01


def a01:
    pass

print('我是a,我引入了b')

b.py

form a import a01


def b01:
    pass

print('我是b,我引入了a')

这种就是循环引入,类似于要一颗蛋需要一只鸡,要一只鸡需要一颗蛋的问题,系统不知道先给你鸡还是先给你蛋,就会报错。

排查步骤

先说结论,绝大部分就是因为开发者用了Python内置的一些关键词来命名py文件了。

 我这个,以log中出现的自己写的代码行(图中马赛克那行)为界,将log分为上下两部分。箭头的地方这三个区域要特别注意,你的py文件名字一定别和他们重名。

我的错误很明显,就是我的一个文件命名为了keyword文件,和Python库自带的keyword文件冲突了。所以会报错。

解决方案就是将上图log中自己的代码行在的py文件(第二部分的第一行的文件)重新命名就可以了。

原因

我自己的keyword文件的import关系是这样的(a→b表示引入a import b)

我的keyword文件 → json → decoder → re → functools → collecitons → 系统的keyword文件

简写就是

我的keyword → collections → 系统的keyword

由于俩文件重名,导致开发环境无法区别,就会报出most likely due to a circular import的错误。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/767670.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号