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

在Databricks使用mlflow.pyfunc模型code_path遇Errno 95问题求助

解决方案

1. 精准指定需打包的代码目录/排除Notebook文件

MLflow打包code_path时会遍历目录下所有文件,Databricks的Notebook(.ipynb/.dbc格式)因DBFS的特殊存储特性,会触发不支持的文件操作。可以:

  • 仅指定src下的纯Python模块子目录,而非整个src:
mlflow.pyfunc.log_model(
    artifact_path="model",
    python_model=your_model,
    code_path=["PROJECT_ROOT/src/utils", "PROJECT_ROOT/src/models"]
)
  • 若使用MLflow 1.26及以上版本,直接通过exclude参数跳过Notebook文件:
mlflow.pyfunc.log_model(
    artifact_path="model",
    python_model=your_model,
    code_path=["PROJECT_ROOT/src"],
    exclude=["*.ipynb", "*.dbc"]
)

2. 分离代码与Notebook的存储路径

将核心Python代码移至DBFS的常规存储目录(而非Notebook工作区目录),避免虚拟存储文件的操作限制:

  • 用Databricks CLI导出代码到常规路径:
databricks workspace export_dir /Workspace/your-project/src dbfs:/tmp/your-project/src
  • 日志模型时指向该常规路径:
mlflow.pyfunc.log_model(
    artifact_path="model",
    python_model=your_model,
    code_path=["dbfs:/tmp/your-project/src"]
)

3. 利用软链接隔离纯代码目录

在项目根目录创建软链接,指向src下不含Notebook的子目录,以此作为code_path的目标:

  • 在Databricks终端执行链接命令:
ln -s PROJECT_ROOT/src/pure-modules PROJECT_ROOT/src-code-only
  • 日志模型时使用该链接目录:
mlflow.pyfunc.log_model(
    artifact_path="model",
    python_model=your_model,
    code_path=["PROJECT_ROOT/src-code-only"]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:47:25