问题:pycharm使用命令行形式执行代码,出现无法导入同一项目其他文件下的模块问题。
起因:
初次使用open-mmlab的mmflow框架。其项目结构如下:
想要跑一下video_demo.py,计算demo video的光流。根据指示运行命令:
python demo/video_demo.py demo/demo.mp4 configs/raft/raft_8x2_100k_mixed_368x768.py checkpoints/raft_8x2_100k_mixed_368x768.pth raft_demo.mp4 --gt demo/demo_gt.mp4
报错
ModuleNotFoundError: No module named 'mmflow'
分析:
出现以上问题,第一反应是没有安装mmflow,但从上图中可以看出mmflow文件夹是存在的,而且,video_demo.py文件中引用mmflow处也没有标红。
排除没有安装mmflow后,那么问题就变成了,mmflow在那儿,代码也没有写错,但你就是引用不了它,或者,你不知道怎么引用它。
解决:
解决方案,添加3行代码:
import sys
sys.path.append("D:\\work\\VOS\\optical flow\\mmflow-master")
sys.path.append("D:\\work\\VOS\\optical flow\\mmflow-master\\mmflow")
解释第2、3行:将你项目的绝对路径以及需要引用的包的绝对路径添加到运行环境中,ubuntu中同理。