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

Databricks工作区合并问题:Python文件自动转为Notebook

问题背景

我有一个Databricks Notebook,依赖代码仓库中的Python字典文件实现功能。通过Azure DevOps CI/CD流水线将代码合并到Databricks工作区后,发现仅包含字典的.py文件被自动转换成了Databricks Notebook,而非保留为纯Python文件,导致Notebook无法正常导入这些字典。

临时解决方法是手动在工作区创建_global_dicts.py,编辑后能正常运行,但CI/CD部署的.py文件还是会被转成Notebook,比如部署test.py后依然出现这个问题。导入代码示例:

from global_dicts import _transactionTypes
from global_dicts import _methods
from global_dicts import _statuses
from global_dicts import _resources
from global_dicts import _endDeviceType
from global_dicts import _readingQuality
根治解决方案

1. 确认工作区非Notebook文件支持配置

请管理员检查Databricks工作区设置:

  • 进入管理控制台 → 工作区设置
  • 确保「启用非Notebook文件支持」选项已勾选
  • 若已开启,尝试重启工作区相关服务(部分环境需要)

2. 调整CI/CD部署路径与方式

方式一:上传到DBFS替代工作区目录

通过Azure DevOps脚本使用Databricks CLI将.py文件上传到DBFS的脚本目录,比如dbfs:/FileStore/scripts/:

databricks fs cp ./global_dicts.py dbfs:/FileStore/scripts/global_dicts.py --overwrite

然后在Notebook中添加DBFS路径到sys.path后再导入:

import sys
sys.path.append("/dbfs/FileStore/scripts/")
from global_dicts import _transactionTypes, _methods, _statuses, _resources, _endDeviceType, _readingQuality

方式二:使用Databricks Repos关联代码仓库

将你的代码仓库直接关联到Databricks Repos,Repos中的.py文件会保持纯Python文件格式,Notebook可以直接用相对路径导入,无需担心转换问题。

3. 在.py文件中添加防转换标记

在.py文件开头添加以下注释,告知Databricks这是纯Python文件,不要转换为Notebook:

# Databricks notebook source
# MAGIC %md
# MAGIC <ignore>
# MAGIC </ignore>

这个标记会让Databricks跳过Notebook转换流程,保留文件的Python格式。

4. 修正CI/CD部署命令参数

如果使用Databricks CLI的workspace import命令部署文件,需要指定--format SOURCE参数明确这是纯Python源文件:

databricks workspace import --format SOURCE --language PYTHON ./global_dicts.py /Workspace/your-target-path/global_dicts.py --overwrite

如果用Azure DevOps的Databricks任务,确保任务配置中选择了正确的文件类型,或者改用自定义脚本执行上述CLI命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:42:25