Databricks中Smartsheet SDK初始化报错:Retry无Default_allowed_methods属性
问题排查与解决
核心原因
这个错误是urllib3版本不兼容导致的:smartsheet-python-sdk依赖的urllib3版本较低,其中Retry类包含Default_allowed_methods属性,但当前Databricks环境中的urllib3是较新版本(v2.x+),该属性已被重命名或移除,初始化Smartsheet客户端时调用到这个属性就会触发报错。
解决步骤
检查当前urllib3版本
在Databricks notebook中执行以下代码确认版本:import urllib3 print(urllib3.__version__)如果输出是2.x及以上版本,就需要进行降级操作。
降级urllib3到兼容版本
在Databricks中运行以下命令安装兼容的旧版本(推荐1.26.x系列):%pip install urllib3==1.26.18安装完成后,重启notebook的kernel(通过顶部菜单的「Restart」选项操作)。
验证修复效果
重新执行初始化代码测试连接:import smartsheet token = "你的Smartsheet Token" Smart = smartsheet.Smartsheet(token) # 执行简单的API调用验证 print(Smart.users.me().email)如果能正常返回你的用户邮箱,说明问题已解决。
锁定依赖版本(可选)
为避免后续环境更新再次引发冲突,可以创建requirements.txt文件并添加以下内容:smartsheet-python-sdk>=2.10,<3.0 urllib3>=1.26,<2.0然后在Databricks中执行
%pip install -r requirements.txt来安装并锁定依赖版本。
内容的提问来源于stack exchange,提问作者Anand Kulkarni
相关产品推荐
相关产品推荐

