导入MLRun触发MLRunNotFoundError,请求协助排查问题
MLRun 404 Not Found错误排查方案
问题场景
已安装与服务端版本一致的MLRun Python包,修改mlrun.env文件配置了MLRUN_DBPATH、V3IO_USERNAME、V3IO_ACCESS_KEY变量,但在Jupyter中执行以下代码时触发404错误:
%pip install mlrun scikit-learn~=1.0 import mlrun ...
错误信息
--------------------------------------------------------------------------- HTTPError Traceback (most recent call last) /opt/conda/lib/python3.8/site-packages/mlrun/errors.py in raise_for_status(response, message) 75 try: ---> 76 response.raise_for_status() 77 except requests.HTTPError as exc: /opt/conda/lib/python3.8/site-packages/requests/models.py in raise_for_status(self) 942 if http_error_msg: ---> 943 raise HTTPError(http_error_msg, response=self) 944 HTTPError: 404 Client Error: Not Found for url: https://mlrun-api.default-tenant.app.iguazio.prod//api/v1/client-spec ... /opt/conda/lib/python3.8/site-packages/mlrun/errors.py in raise_for_status(response, message) 80 error_message = f"{str(exc)}: {message}" 81 try: ---> 82 raise STATUS_ERRORS[response.status_code]( 83 error_message, response=response 84 ) from exc MLRunNotFoundError: 404 Client Error: Not Found for url: https://mlrun-api.default-tenant.app.iguazio.prod//api/v1/client-spec: details: Not Found
排查要点
- 修正
MLRUN_DBPATH格式:错误URL中出现双斜杠//api/v1,大概率是MLRUN_DBPATH配置末尾多了斜杠。将配置从https://mlrun-api.default-tenant.app.iguazio.prod/改为不带末尾斜杠的https://mlrun-api.default-tenant.app.iguazio.prod,避免路径拼接时出现无效双斜杠。 - 验证API端点可达性:在Jupyter终端执行
curl https://mlrun-api.default-tenant.app.iguazio.prod/api/v1/client-spec,若返回404,说明服务端API路径配置错误或MLRun服务未正常部署;若返回合法JSON,再排查客户端配置问题。 - 确认环境变量生效:Jupyter可能未加载
mlrun.env配置,可在代码中打印环境变量验证:
若输出为空,手动加载环境变量后重试:import os print(os.environ.get("MLRUN_DBPATH")) print(os.environ.get("V3IO_USERNAME"))
或重启Jupyter内核确保配置生效。from dotenv import load_dotenv load_dotenv("mlrun.env") - 再次核对版本匹配度:尽管已确认版本一致,仍建议执行
mlrun version分别检查客户端与服务端版本,确保主、次版本完全匹配,小版本差异也可能导致API路径不兼容。
内容的提问来源于stack exchange,提问作者JIST
相关产品推荐
相关产品推荐

