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

启动Jupyter Notebook报NameError: name 'c' is not defined求助

错误根因

你遇到的报错是模块命名冲突导致的:

  • 项目notebooks目录下的config.py是Jupyter专用配置文件,文件中的c是Jupyter启动时自动注入的配置对象,仅在Jupyter启动进程中有效,作为普通Python模块导入时不存在该变量
  • 业务代码connect_postgres.py中导入了config.util.database,Python模块搜索时优先匹配当前目录下的config.py(即Jupyter配置文件),而非你业务逻辑对应的config包,读取到Jupyter配置内容时就会触发NameError

解决方案

1. 调整Jupyter项目级配置存放路径

你可以将Jupyter配置放在项目内可提交Git的目录下,无需使用个人目录的全局配置:

  • 在项目根目录新建.jupyter文件夹,该文件夹可直接提交到Git
  • 将原notebooks/config.py文件移动到.jupyter目录下,重命名为jupyter_notebook_config.py,文件内容无需修改
  • 删除原notebooks/config.py文件,消除命名冲突

2. 指定配置启动Jupyter

启动Jupyter时添加参数指定项目内的配置文件即可加载统一的jupytext配置,启动命令如下:

jupyter notebook --config ./.jupyter/jupyter_notebook_config.py

你可以在项目根目录新建启动脚本start_jupyter.sh,写入上述命令后添加执行权限,后续团队成员都可以直接运行脚本启动,无需记忆参数,脚本也可以提交到Git。

3. 验证导入逻辑

启动完成后打开报错的笔记本,重新运行from src.util.connect_postgres import postgres_connexion即可正常导入。如果仍提示找不到config包,可以在笔记本开头添加项目根目录到Python导入路径:

import sys
# 替换为你的项目根目录绝对路径,也可以用os.path动态获取
sys.path.append("/path/to/your/project/SG")

或者在项目根目录执行pip install -e .将项目安装为可编辑模式,自动配置导入路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:27:03