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

如何在Databricks中强制使用低版本Python库解决依赖冲突

在Databricks Runtime 13.3中解决transformers与urllib3依赖冲突的方案

由于Databricks Runtime预装的urllib3 2.1.0和transformers存在依赖冲突,且无法卸载预装库,可通过以下几种方式强制使用兼容的低版本urllib3:

方法1:会话级临时覆盖(推荐)

仅对当前Notebook会话生效,不影响集群其他任务:

  • 在Notebook首个单元格执行以下代码,让Python优先加载指定版本的urllib3:
import sys
# 安装指定版本到临时目录
!pip install --target=/tmp/urllib3_custom urllib3==1.26.18
# 将临时目录加入sys.path最前端,确保优先加载
sys.path.insert(0, '/tmp/urllib3_custom')

# 验证版本是否生效
import urllib3
print(urllib3.__version__)  # 预期输出1.26.18

完成后直接导入transformers即可,该方法不会修改集群全局环境,适合快速测试。

方法2:集群初始化脚本(全局生效)

如果需要整个集群都使用兼容版本,可通过初始化脚本配置:

  1. 创建Shell脚本install_urllib3.sh,内容如下:
#!/bin/bash
# 强制重装指定版本到Databricks Python库目录
pip install --upgrade --force-reinstall urllib3==1.26.18 --target=/databricks/python/lib/python3.9/site-packages/
  1. 将脚本上传至DBFS(如dbfs:/databricks/scripts/install_urllib3.sh)
  2. 编辑集群配置,在「初始化脚本」中添加该DBFS路径,重启集群后,全局Python环境会优先使用指定版本的urllib3。

方法3:虚拟环境隔离

创建独立虚拟环境彻底隔离依赖:

# 安装虚拟环境工具
!pip install virtualenv
# 创建虚拟环境
!virtualenv /tmp/venv_transformers
# 在虚拟环境中安装兼容的依赖
!source /tmp/venv_transformers/bin/activate && pip install urllib3==1.26.18 transformers

# 示例:在虚拟环境中运行代码
import subprocess
run_result = subprocess.run(
    ["/tmp/venv_transformers/bin/python", "-c", 
     "import urllib3; import transformers; print('urllib3版本:', urllib3.__version__); print('transformers导入成功')"],
    capture_output=True, text=True
)
print(run_result.stdout)

该方法适合需要完全独立依赖环境的场景,但代码需通过虚拟环境的Python解释器执行。

注意事项

  • 确认transformers兼容的urllib3版本(1.26.x系列适配绝大多数transformers稳定版本)
  • 会话级方法是最安全的测试方式,不会影响其他用户任务
  • 全局初始化脚本需确认集群所有任务均兼容低版本urllib3,避免引发其他依赖问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:00:07