“import error” 的两种解决思路

前言

在导入自定义模块的过程中,如果要导入的包和本py文件在同一个路径下,直接import即可,不会出现问题。但是如果是引用父级甚至是上上级的包,有可能出现“no module named ***”的错误,下面是两种解决思路:
在这里插入图片描述

1. 使用相对路径

如图,现在ssd_vgg_300.py要引用utils中的ssd_utils.py,可以使用import ..utils.nets_factory.py

2. 使用绝对路径

如果我们要引入的包在上上级甚至更复杂的位置,可以考虑增加该包的路径到sys里面:
sys.path.append('#########')
但是这样做似乎过于复杂,不符合python简洁的气质。能不能利用原有的“path”做文章?
首先我们可以看一下这个项目中有哪些“path”,在ssd_vgg_300.py中打印sys.path可以发现除了python解释器相关的文件外还有两个路径:
C:\\Users\\小狮子\\Desktop\\online_class_V4.0\\online_class_V4\\nets\\nets_model
C:\\Users\\小狮子\\Desktop\\online_class_V4.0
不难发现第一个就是本文件所在的路径,所以同目录下的包可以直接import。而第二个则是项目路径,所以我们不妨以项目路径当作根节点,使用“绝对路径”,比如:
ssd_vgg_300.py要引用preprocessing.py中的train_ssd_network.py,可以使用
import online_class_V4.preprocessing.train_ssd_network.py

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值