You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下MLflow sklearn log_model权限及协议配置报错排查

问题解决:MLflow log_model权限错误及跟踪URI异常

第一个问题:PermissionError: [Errno 13] Permission denied: '/D:'

原因

Linux系统下出现Windows风格的/D:路径,大概率是MLflow读取了残留的Windows环境变量(比如MLFLOW_TRACKING_URI或MLFLOW_ARTIFACT_URI)——这些变量被设置成了类似file:///D:/xxx的Windows路径,在Linux下解析时就变成了/D:,而你对这个路径没有操作权限。

解决步骤

  • 检查并清除环境变量:在终端执行echo $MLFLOW_TRACKING_URI和echo $MLFLOW_ARTIFACT_URI,如果输出是Windows路径,直接清除:
    unset MLFLOW_TRACKING_URI
    unset MLFLOW_ARTIFACT_URI
    
    或者在Jupyter Notebook里用Python代码清除:
    import os
    os.environ.pop("MLFLOW_TRACKING_URI", None)
    os.environ.pop("MLFLOW_ARTIFACT_URI", None)
    
  • 显式指定本地跟踪目录:在代码开头设置一个Linux下你有权限的路径,比如:
    import mlflow
    mlflow.set_tracking_uri("./mlruns")  # 用当前目录下的mlruns文件夹存储跟踪数据
    
    之后再执行mlflow.sklearn.log_model(lr, "model"),模型会被存储到./mlruns目录下,不会再出现/D:路径。

第二个问题:MlflowException: 跟踪URI scheme 'file'无效

原因

你设置了HTTP类型的tracking_uri,但artifact存储的scheme还是默认的file,MLflow的代理artifact机制要求tracking uri必须是HTTP/HTTPS,同时需要确保MLflow服务已正确启动并配置了artifact存储路径。

解决步骤

  1. 正确启动MLflow服务:在终端执行命令,指定服务端口和artifact存储目录(选一个你有权限的本地目录):
    mlflow server --host 0.0.0.0 --port 4321 --default-artifact-root ./mlflow_artifacts
    
    这里--default-artifact-root指定了服务端存储artifact的路径,确保该目录已存在且你有权限读写。
  2. 在Notebook中配置正确的URI:
    import mlflow
    from mlflow.tracking import MlflowClient
    
    # 设置tracking uri为MLflow服务地址
    mlflow.set_tracking_uri("http://localhost:4321")
    # 无需单独设置artifact_uri,服务会自动使用--default-artifact-root指定的路径
    client = MlflowClient(tracking_uri="http://localhost:4321")
    
  3. 检查残留环境变量:确保MLFLOW_ARTIFACT_URI没有被设置成file://开头的路径,按第一个问题里的方法清除即可。

内容的提问来源于stack exchange,提问作者KansaiRobot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:42:21