成功解决 ValueError: Attempted relative import in non-package

 文件目录如下图所示:

但是在与src同层目录下的demo.py文件(都在hmr-master目录下)导入下列模块会报错,找不到src

尝试改成下面所示,在src前面加.退出到hmr-master,可以识别。

 可是运行时却报  ValueError: Attempted relative import in non-package,查看博客 python相对包导入报“Attempted relative import in non-package”错误 ,发现是demo.py文件是在pycharm中被直接运行,这个时候demo的名称是__main__,那么它就不被认为是在一个包当中,因为它的名称当中不含有“点”,所以不能在它的里面使用from ../path/ import。

解决办法:

第一种方法按上面博客里提到的,在终端下面,进入到hmr目录下面,运行demo.py文件,前面要加hmr-master. ,把它当做一个模块来加载,而不是顶层的脚本。

python -m hmr-master.demo --img_path /home/liu/PycharmProjects/hmr/hmr-master/data/coco1.png

第二种方法是把  from .src.util import renderer as vis_util 语句 src前的点号去掉,和最开始的写法一样,为了让其可以识别,还要在pycharm里面左边目录栏点击选中hmr-master,右键点击Mark Directory as   Sources Root,相当于告诉pycharm把hmr-master目录当做导入模块时的寻找路径。

成功运行!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值