在python项目中,通常我们要将功能划分为多个文件,
可能出现一些,各模块需要一些公共的值、实例,同时相互存在循环引用的问题。
这种循环引用在 静态语 中一般没有问题,python中无法正常运行。
本文指导明如何简单的解决这个问题。
出错信息为:cannot import name 'xxx' from partially initialized module 'xxxx' (most likely due to a circular import)
程序目录结构:
│ run.py #项目主入口 ├─appdir │ __init__.py │ comm_base.py #公共类和值 │ user_info.py #用户信息表 ├─weixinpay config.py #微信支付的公共值 pay.py #微信支付
正确的引用关系:
run.py 可以import appdir.comm_base,可以from appdir.comm_base import XXX,可以import user_info,可以import user_info
commbase.py 不可以引用run,也不可以引用user_info等
user_info.py 可以import appdir.comm_bse,不能引用run
user_info.py 可以from appdir.comm_bse import XXX 不能引用run
user_info.py 可以import weixinpay.pay import XXX
原文地址:https://zhuanlan.zhihu.com/p/107024982