AWS SageMaker的Jupyter中导入setup_environment模块失败求助
解决SageMaker Jupyter环境中导入模块的PYTHONPATH问题
方法1:确认路径并使用绝对路径添加
你当前用的相对路径data-science/commons/可能因为SageMaker工作目录和预期不一致导致找不到模块。先在代码里打印当前工作目录:
import os print(os.getcwd())
根据输出的路径,拼接出commons文件夹的绝对路径。比如如果当前工作目录是/home/sagemaker-user,且data-science/commons在该目录下,就改成:
sys.path.append('/home/sagemaker-user/data-science/commons/')
也可以用更灵活的写法,基于当前脚本路径拼接:
# 获取当前脚本所在目录 current_dir = os.path.dirname(os.path.abspath(__file__)) # 根据实际目录层级拼接commons路径 commons_path = os.path.join(current_dir, '../data-science/commons/') sys.path.append(os.path.abspath(commons_path))
方法2:在Notebook中直接设置PYTHONPATH环境变量
在Notebook开头直接设置环境变量,后续import会自动读取这个路径:
import os # 替换为实际的commons绝对路径 os.environ['PYTHONPATH'] = '/path/to/your/data-science/commons:' + os.environ.get('PYTHONPATH', '') # 之后正常导入模块 import setup_environment
方法3:通过SageMaker生命周期配置全局设置PYTHONPATH
如果想让所有Notebook实例都生效,可使用生命周期配置:
- 打开SageMaker控制台,进入「笔记本」→「生命周期配置」
- 创建新配置,在「启动笔记本」脚本中添加:
export PYTHONPATH="/path/to/your/data-science/commons:$PYTHONPATH"
- 将该配置关联到你的Notebook实例,重启实例后生效。
方法4:将commons目录转为可导入包
在commons文件夹中创建一个空的__init__.py文件,然后在Notebook中用pip安装该目录的可编辑版本:
!pip install -e /path/to/your/data-science/commons/
安装后无需手动修改sys.path,直接import setup_environment即可。
内容的提问来源于stack exchange,提问作者Mohamed Ashraf
相关产品推荐
相关产品推荐

