Google Colab克隆Github仓库运行报ModuleNotFoundError的解决方法
解决方案
你遇到的ModuleNotFoundError报错核心原因有两点:一是Colab默认环境未预装目标仓库依赖的第三方库(本次报错是缺少MaskFormer依赖的detectron2库),二是未正确将仓库路径加入Python的模块搜索路径,和谷歌云盘挂载没有关联,按以下步骤操作即可正常运行:
1. 克隆仓库后先完成基础配置
克隆代码后首先切换到仓库根目录,同时将当前仓库路径加入Python搜索路径,避免相对导入报错:
%cd MaskFormer import sys sys.path.append('.')
注意Colab中切换工作目录用%cd而不是!cd,后者仅在子shell生效,不会改变当前notebook的全局工作路径
2. 安装所有依赖
- 首先安装仓库自身声明的依赖,一般开源仓库根目录都会提供requirements.txt文件:
!pip install -r requirements.txt - 再安装框架类特殊依赖,MaskFormer基于detectron2开发,需安装匹配Colab环境版本的detectron2库,版本需和当前Colab预装的CUDA、PyTorch版本对应。
3. 调整运行指令的路径参数
你之前的运行指令中配置文件路径是相对上级目录的写法,切换到MaskFormer根目录后调整为对应相对路径即可:
!python demo/demo.py --config-file configs/ade20k-150/maskformer_R50_bs16_160k.yaml --input input1.jpg input2.jpg --opts MODEL.WEIGHTS /path/to/checkpoint_file
如果你的输入图片、权重文件不在MaskFormer目录下,对应写绝对路径即可
Github仓库在Colab运行的通用流程
- 克隆仓库后优先用
%cd切换到仓库根目录 - 把仓库根目录加入Python的
sys.path,解决模块找不到的问题 - 先安装
requirements.txt里的所有依赖,再安装mmcv、detectron2这类框架类特殊依赖 - 运行代码时所有路径优先基于当前仓库根目录写相对路径,或者直接写绝对路径,避免路径不匹配报错
内容的提问来源于stack exchange,提问作者emanuel nk
相关产品推荐
相关产品推荐

