如何解决databricks-registry-webhooks的databricks.proto TypeError错误?
解决MLflow模型注册Webhook导入时的databricks.proto重复错误
问题原因
该错误源于多个Python包(如databricks-sdk和databricks-registry-webhooks)包含同名的databricks.proto文件,导致Protobuf描述符池冲突,无法构建正确的proto描述。
解决方案
1. 统一兼容的依赖版本
先卸载现有冲突包,再安装经过验证的兼容版本组合:
pip uninstall -y databricks-sdk databricks-registry-webhooks pip install databricks-registry-webhooks==0.1.7 databricks-sdk==0.20.0
(版本号可根据官方兼容文档调整,上述组合是社区验证有效的版本)
2. 使用虚拟环境隔离依赖
通过虚拟环境避免全局包冲突,确保项目依赖独立:
# 创建虚拟环境 python -m venv mlflow-webhook-env # 激活虚拟环境(Windows) mlflow-webhook-env\Scripts\activate # 激活虚拟环境(macOS/Linux) source mlflow-webhook-env/bin/activate # 安装所需依赖 pip install databricks-registry-webhooks databricks-sdk
3. 改用Databricks SDK原生API(推荐)
新版本databricks-sdk已整合MLflow模型注册Webhook功能,无需单独安装databricks-registry-webhooks,直接使用原生API即可避免冲突:
from databricks.sdk import WorkspaceClient from databricks.sdk.service.ml import WebhookCreate, JobSpec, HttpUrlSpec # 初始化Workspace客户端 w = WorkspaceClient() # 创建模型注册Webhook示例(触发任务) w.model_registry_webhooks.create( name="model-version-created-webhook", events=["MODEL_VERSION_CREATED"], job_spec=JobSpec(job_id="你的任务ID") ) # 创建HTTP类型Webhook示例 w.model_registry_webhooks.create( name="model-stage-change-webhook", events=["MODEL_VERSION_STAGE_TRANSITIONED"], http_url_spec=HttpUrlSpec(url="你的Webhook接收地址") )
内容的提问来源于stack exchange,提问作者Climbs_lika_Spyder
相关产品推荐
相关产品推荐

