如何使用Jupyter Notebook内置魔法命令%run运行父目录中的Python脚本
解决Jupyter Notebook中%run运行父目录脚本的问题
我明白你现在卡在Jupyter里用%run执行父目录脚本的问题上了,试过改sys.path和绝对路径都没效果,别急,咱们一步步来解决:
方案一:用相对路径直接运行(最简单)
你当前的Notebook文件在/home/parent_directory/Child_dir/下,父目录就是上一级,直接用相对路径调用%run就行,不用折腾sys.path:
%run ../script_name.py
注意要加上脚本的后缀.py,Linux系统路径区分大小写,别写错脚本名哦。
方案二:正确添加父目录到sys.path
你之前的代码可能有语法问题(比如缩进错误),而且硬编码绝对路径不够灵活,试试这段修正后的代码:
import os import sys # 动态获取父目录的绝对路径(不用硬编码) parent_dir = os.path.abspath(os.path.join(os.getcwd(), '..')) # 检查并添加到sys.path if parent_dir not in sys.path: sys.path.append(parent_dir)
运行这段代码后,再执行%run script_name.py就能找到父目录里的脚本了。
排查可能的坑
如果上面的方法还是不行,检查这几点:
- 确认脚本确实存在于
/home/parent_directory/下,路径和文件名完全正确(包括大小写); - 脚本里有没有依赖其他文件的相对路径?如果有,运行时的工作目录是Notebook所在的
Child_dir,可能需要调整脚本里的路径; - 试试重启Jupyter内核,有时候路径修改需要重启才能生效。
内容的提问来源于stack exchange,提问作者universe123
相关产品推荐
相关产品推荐

