SageMaker Studio定时运行Notebook无法访问本地文件求助
解决SageMaker Studio Notebook跨运行环境访问本地文件的问题
1. 用绝对路径替代相对路径
别依赖当前工作目录,直接写文件的完整绝对路径。比如你终端能访问的/home/sagemaker-user/mydirectory,在Notebook里直接用这个路径读取文件:
import os file_path = "/home/sagemaker-user/mydirectory/your_target_file.csv" if os.path.exists(file_path): # 读取文件逻辑 pass
这样不管是交互式运行还是定时调度,只要路径正确就能访问到文件。
2. 确保Notebook容器挂载了Studio默认存储
如果Notebook里看不到/home/sagemaker-user目录,是因为Notebook容器没挂载这个存储:
- 新建Notebook时,在"Environment"配置里,确认"File System"选项勾选了挂载SageMaker Studio的默认存储(默认是勾选的,但如果之前改了要重新选)
- 已有的Notebook可以重启,重启时会自动挂载默认存储,之后就能在Notebook里看到
/home/sagemaker-user目录了
3. 定时调度时对齐工作目录
如果不想改Notebook里的路径逻辑,在创建定时任务时:
- 找到"Advanced Settings"或"Environment Variables"设置项
- 添加环境变量
PWD=/root/test(你的交互式工作目录),这样定时运行时的工作目录就和交互式环境一致,原有的相对路径代码不用改
4. 修复目录权限
如果还是访问不了,在终端里给目标目录加可读权限:
chmod -R 755 /home/sagemaker-user/mydirectory
确保Notebook进程有足够权限读取目录里的文件
内容的提问来源于stack exchange,提问作者rightsized
相关产品推荐
相关产品推荐

