文件目录如下图所示:
但是在与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目录当做导入模块时的寻找路径。
成功运行!