在Azure Machine Learning Notebook中导入自定义Python模块遇问题求助
解决Azure Machine Learning Notebook导入自定义模块的问题
可能的原因
Azure ML Notebook的默认工作路径或Python模块搜索路径(sys.path)未包含自定义模块所在目录,即便文件在同一路径下,也会触发ModuleNotFoundError。
解决方案
方案1:手动添加模块所在目录到Python路径
这是最可靠的方法,直接将notebook与自定义模块的共同目录加入Python搜索路径:
import sys from pathlib import Path # 获取当前notebook文件的绝对路径所在目录 current_dir = Path().absolute() # 将该目录添加到Python模块搜索路径 sys.path.append(str(current_dir)) # 正常导入并执行 from test import test_method test_method()
方案2:切换工作目录到模块所在路径
如果test.py确实和notebook同路径,但notebook运行时的工作目录并非该路径,可先切换目录:
import os from pathlib import Path # 获取notebook所在目录 notebook_dir = Path().absolute() # 切换工作目录到该路径 os.chdir(notebook_dir) # 验证目录下是否存在test.py print(os.listdir()) # 导入并执行 from test import test_method test_method()
方案3:使用相对导入(需注意运行环境兼容性)
部分Jupyter环境支持相对导入,可尝试:
from .test import test_method test_method()
额外验证步骤
- 运行
!pwd查看当前工作目录 - 运行
!ls检查当前目录下是否存在test.py - 若刚上传文件,刷新Azure ML文件列表或重启计算实例确保文件同步
内容的提问来源于stack exchange,提问作者alexis
相关产品推荐
相关产品推荐

