【问题解决/Python】解决Python自定义模块嵌套调用的方法

问题描述

最近在做一块自动化测试脚本的时候,把各功能写在不同的文件中,再进行import调用
文件结构如下:
在这里插入图片描述
即CLI.py和lib文件夹同目录,lib文件夹下方有4个py文件
其中,CLI.py会调用AutoCheck.py和MipsDasm.py,AutoCheck.py会调用同目录下的MyCompare.py
于是写法如下

#CLI.py
from lib.MipsDasm import *
from lib.AutoCheck import *
#AutoCheck.py
import MyCompare

看似没有问题,但是运行时便会报错
在这里插入图片描述
在网上查找了半天,使用的方法包括添加"_ _ init _ _.py",使用"sys.path.append",甚至还有修改setting.json(本人使用VSCode),但都不成功。

方法解决

后来在网上查找到了类似的提问,一个可行的解决方法是:
使用"from … import …" 语句
(给出参考网址:https://tieba.baidu.com/p/3368113163?red_tag=0976596496)
在这里插入图片描述
于是我修改AutoCheck.py为

#AutoCheck.py
from lib import MyCompare

再点击CLI.py,无相关报错,程序可运行

总结与反思

这次花费了将近2个小时在模块导入上,说明我还没有理解import 和 from import 的区别,有机会要好好研究一下。

最后简单总结一下Python自定义模块调用出错时的解决方案吧:

  1. 添加__init__.py,并使用诸如xxx.yyy(xxx为文件夹,yyy为模块名)的形式
  2. 使用sys.path.append(模块所在目录)
  3. 修改IDE相关设置(我没有成功,不做赘述)
  4. 注意from import 和import的区别(等我有时间去分析的时候会回来做补充)

希望我的文章对你有帮助

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值