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

Jupyter Notebook中__file__未定义报错:VSCode代码迁移后失效原因

问题原因与解决方案

为什么在Jupyter Notebook中报错?

__file__是Python脚本文件(.py)的内置变量,用于指代当前脚本的绝对路径。但Jupyter Notebook的代码是在交互式内核中逐单元格执行的,没有对应的独立.py文件实体,因此内核不会定义__file__变量,运行时就会抛出NameError。

替代解决方案

方案1:基于当前工作目录构建路径

默认情况下,Jupyter的当前工作目录就是Notebook文件所在的文件夹,直接用Path.cwd()获取后拼接路径即可,还能跨平台兼容:

import pandas as pd
import os
from pathlib import Path
import matplotlib.pyplot as plt

# 获取Notebook所在的目录作为根路径(如果需要父目录就加.parent)
root_path = Path.cwd()

# 用Path的路径拼接语法,自动适配Windows/Linux路径分隔符
train_data_path = root_path / "data" / "train_codified.csv"
test_data_path = root_path / "data" / "test_codified.csv"

方案2:获取Notebook文件的实际路径

如果需要精准定位Notebook文件所在目录,可以借助Jupyter的内置API获取:

import pandas as pd
from pathlib import Path
import matplotlib.pyplot as plt
import IPython

# 获取当前Notebook文件的路径
notebook_file = Path(IPython.get_ipython().kernel.config["IPKernelApp"]["file"])
cur_path = notebook_file.parent
root_path = cur_path.parent.absolute()

train_data_path = root_path / "data" / "train_codified.csv"
test_data_path = root_path / "data" / "test_codified.csv"

方案3:手动指定根目录

如果项目路径固定,直接写死绝对路径最简单:

import pandas as pd
from pathlib import Path
import matplotlib.pyplot as plt

# 替换成你的项目根目录绝对路径
root_path = Path("C:/your/project/root/directory")

train_data_path = root_path / "data" / "train_codified.csv"
test_data_path = root_path / "data" / "test_codified.csv"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:01:00