本文详解解决“cannot define a mlflow experiment”错误的核心方法:必须先启动本地 mlflow 后端服务器,否则 `mlflow.set_experiment()` 会因无法连接追踪 uri 而抛出连接拒绝异常。
当你在代码中调用 mlflow.set_tracking_uri("http://127.0.0.1:8080") 和 mlflow.set_experiment("MLflow Quickstart") 却遇到类似以下报错:
MlflowException: API request to http://127.0.0.1:8080/api/2.0/mlflow/experiments/get-by-name failed... Caused by NewConnectionError(... [WinError 10061] Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée)
这并非认证或权限问题,而是最基础的连接前提未满足:你尚未启动 MLflow 跟踪服务器。
MLflow 的 set_tracking_uri 指向的是一个运行中的 HTTP 服务端点(即后端),它负责接收日志、管理

✅ 正确操作流程如下:
在终端(非 Python 环境)中启动 MLflow 服务器:
mlflow server --host 127.0.0.1 --port 8080 --backend-store-uri sqlite:///mlflow.db --default-artifact-root ./mlruns
保持该终端持续运行(服务器进程需常驻),再执行你的 Python 脚本。
验证服务是否就绪:打开浏览器访问 http://127.0.0.1:8080,应能看到 MLflow UI 界面(含“Experiments”标签页)。
? 补充说明:
完成上述步骤后,你的原始代码即可正常运行:
import mlflow
mlflow.set_tracking_uri("http://127.0.0.1:8080")
mlflow.set_experiment("MLflow Quickstart") # ✅ 成功创建/获取实验
with mlflow.start_run():
mlflow.log_param("alpha", 0.5)
mlflow.log_metric("accuracy", 0.92)总结:MlflowException: Failed to establish a new connection 是典型的“服务未启动”信号,而非配置或权限错误。先启服务,再写代码,是本地使用 MLflow 跟踪功能不可跳过的第一步。