美文网首页
ImportError: cannot import name

ImportError: cannot import name

作者: CW不要无聊的风格 | 来源:发表于2020-06-12 18:32 被阅读0次

背景

公司近期加强了代码规范性的审查,一些敏感信息不能直接暴露在代码中,因此,需要将这部分信息存入配置中心,然后实现一个类用作配置中心的接口,最后通过这个接口来获取需要的信息。

问题产生

我将用作接口的这个类写在了项目目录的某个已有文件utils.py中,并且实例化了一个对象ap_clinet,其它需要获取配置中心信息的文件均通过调用这个对象来实现。

现在,有另一文件run_service.py需要实例化这个类,于是,其文件头中有这么一行:

from xxx.utils import ap_client (xxx代表的是父路径)

于是就会进入到utils.py中,utils.py中有这么一行:

from .api import xxx

接着便进入到api.py中,但是在api.py文件头中有这么一行:

from .utils import ap_client

于是,就来了这么一出戏:

ImportError: cannot import name 'ap_client'

解析

因为utils.py调用了api.py的东西,而api.py又需要调用utils.py的ap_client,而这时候utils.py里的ap_client还没有生成,于是就报错了。

解决措施

很简单,将ap_client单独写在另一个文件就好,这个文件不依赖任何其它文件的模块。

相关文章

网友评论

      本文标题:ImportError: cannot import name

      本文链接:https://www.haomeiwen.com/subject/vijntktx.html