如何在Google Colab中导入Python文件 解决同目录.py文件识别报错
Colab运行本地Python项目找不到同目录模块的修复方案
这个问题的核心原因是Colab运行时不会自动把你打开的代码文件所在目录加入Python模块搜索路径,也不会自动切换工作目录到代码所在文件夹,按以下步骤操作即可修复:
- 首先确认项目文件完整上传到Colab运行时环境,
EfficientDet-DeepSORT-Tracker文件夹内的目录结构和本地运行时完全一致,没有缺文件、层级错乱的问题。 - 在所有业务代码的最开头,添加以下路径配置代码,将项目根目录加入Python搜索路径,同时切换当前工作目录到项目根目录:
import sys import os # 替换为你自己的项目根目录绝对路径 PROJECT_PATH = "/content/EfficientDet-DeepSORT-Tracker" sys.path.insert(0, PROJECT_PATH) os.chdir(PROJECT_PATH)
如果项目存放在挂载的Google Drive中,路径格式通常为
/content/drive/MyDrive/[你存放项目的子目录]/EfficientDet-DeepSORT-Tracker,不要直接照搬示例路径。
- 配置完成后先做有效性校验,执行以下代码确认路径配置正确:
# 打印当前工作目录,确认输出为你设置的PROJECT_PATH print(os.getcwd()) # 检查项目根目录是否在Python模块搜索路径的靠前位置 print(PROJECT_PATH in sys.path)
校验输出符合预期后,再运行你的目标代码,就可以正常导入backbone.py等同目录下的模块了。
- 常见踩坑点:
- Colab默认工作目录为
/content,哪怕你在左侧文件栏点开了子文件夹内的代码文件,工作目录也不会自动切换,必须手动执行切目录操作。 - 如果你用
!python xxx.py的shell命令方式运行脚本,需要先执行%cd /你的/项目/根/目录切换命令行的工作目录,shell环境和notebook的Python环境工作目录不互通,只在Python代码里切目录对shell命令不生效。 - Colab运行在Linux环境下,文件名大小写敏感:本地Windows环境下
Backbone.py和backbone.py会被识别为同一个文件,Colab里会直接判定文件不存在,导入前先核对文件名大小写和import语句里的写法完全一致。 - 如果运行中途修改过目录结构、新增了模块文件,执行一次
%load_ext autoreload、%autoreload 2开启自动重载,避免Colab缓存旧的目录结构导致识别不到新文件。
- Colab默认工作目录为
内容的提问来源于stack exchange,提问作者user19323824
相关产品推荐
相关产品推荐

