You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Colab中运行含多级子目录的Python项目并解决导入报错

问题原因

你之前将test_project目录本身加入了sys.path,Python导入包时会从sys.path所列路径下搜索目标包:当你要导入test_project.module1时,Python会到sys.path的路径下查找名为test_project的包目录,你将test_project本身加入路径后,Python只会在test_project目录内部搜索test_project子目录,自然匹配失败,因此只能从父目录下成功导入test_project本身,但无法导入其下的子模块。

解决方案

下面提供两种方案,其中方案2完全符合你「和pip install安装的包使用逻辑一致」的需求。

方案1:临时修正sys.path(仅对当前运行时的当前笔记本有效)

  • 首先确认test_project文件夹在Colab中的存放路径,默认上传到Colab根目录时路径为/content/test_project,你需要将test_project的父目录加入sys.path:
import sys
# 替换为你实际存放test_project的父目录的绝对路径
sys.path.insert(0, '/content')
  • 配置完成后即可正常导入所有模块:
from test_project.module1 import foo
from test_project.utils.util1 import 对应函数

方案2:可编辑安装(和pip安装效果完全一致)

该方案会将你的项目注册到Python环境中,和普通pip安装的第三方包使用方式无差异,操作步骤如下:

  1. 在test_project根目录(和module1.py、utils文件夹同级的位置)新建pyproject.toml配置文件,写入最小可用配置:
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "test_project"
version = "0.1.0"

如果你习惯使用setup.py,也可以替换为创建setup.py文件,内容如下:

from setuptools import setup, find_packages

setup(
    name="test_project",
    version="0.1.0",
    packages=find_packages(),
)
  1. 在Colab中执行安装命令:
%cd /content
!pip install -e test_project
  1. 安装完成后,你可以在当前运行时的任意位置直接导入项目内的所有模块,不需要额外配置路径。

注:Colab运行时重置后所有临时环境配置都会失效,需要重新执行对应操作。

内容的提问来源于stack exchange,提问作者popeye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:06:02