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

如何在Jupyter Notebook子目录.ipynb中导入上级目录Python文件?

在Jupyter Notebook中调用通用functions.py的几种方法

针对你的目录结构(/user/project下有通用functions.py和各模型文件夹),我整理了几个实用的方案,适配Python 3.6和Jupyter环境:

方法1:临时添加项目根目录到Python路径(简单直接)

这是最快的临时解决方案,在每个模型文件夹内的.ipynb开头加入以下代码:

import sys
# 将项目根目录添加到Python的模块搜索路径中
sys.path.append('/user/project')
# 现在可以直接导入functions里的内容了
from functions import your_function_name  # 或者用*导入所有函数

优点:无需额外配置,上手快;缺点:每次启动Notebook都要运行这段代码,适合小项目或临时测试。

方法2:将项目目录转为Python包(规范方案)

把/user/project变成一个可导入的Python包,步骤如下:

  1. 在/user/project目录下创建一个空的__init__.py文件(这是Python识别包的标志)
  2. 在模型文件夹的Notebook中,通过绝对路径导入:
import sys
# 把/user目录加入搜索路径,这样Python能找到project包
sys.path.append('/user')
from project.functions import your_function_name

或者如果你已经把/user/project加到sys.path,也可以直接写:

from functions import your_function_name

方法3:安装为可编辑包(推荐长期项目)

如果你的项目需要长期维护,这个方法最规范,能让你在任何位置都能导入functions:

  1. 在/user/project目录下创建setup.py文件,内容如下:
from setuptools import setup, find_packages

setup(
    name="my_project",
    version="0.1",
    packages=find_packages(),
    # 如果functions.py不在子包,手动指定模块
    py_modules=["functions"]
)
  1. 在Jupyter Notebook中运行终端命令(或者直接在系统终端执行):
cd /user/project
pip install -e .

-e表示可编辑模式,之后你修改functions.py的内容,所有导入的地方都会实时生效,无需重新安装。
3. 现在不管哪个模型文件夹的Notebook,都可以直接导入:

from functions import your_function_name

方法4:切换Notebook工作目录到项目根

如果不想修改sys.path,可以先把Notebook的工作目录切换到/user/project,再导入:

import os
# 切换到项目根目录
os.chdir('/user/project')
from functions import your_function_name

注意:切换工作目录后,Notebook中所有相对路径的文件操作都会基于/user/project,如果你的Notebook里有读取模型文件夹内文件的代码,可能需要调整路径。

小提示

  • 如果你不确定当前Notebook的工作目录,可以运行import os; print(os.getcwd())查看
  • Python 3.6对上述方法都完全兼容,不用担心版本问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:15:15