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

Snowflake Python connector执行PUT文件命令报backend参数缺失错误如何解决

问题根因
  • 该报错属于snowflake-connector-python 2.6.2版本的依赖兼容性问题:该版本的PUT文件上传功能依赖pycryptodomex加密库的特定接口,当Python环境中安装的pycryptodomex版本≥3.14.0时,加密类的初始化方法新增了backend必填参数,但2.6.2版本的连接器未适配该参数变更,因此触发TypeError。
  • SnowSQL可正常执行是因为它是独立打包的官方客户端,自带适配版本的依赖库,和当前Python环境的依赖版本无关。
解决方案

可根据实际场景选择以下任意一种方案解决:

方案1:固定pycryptodomex版本(无需修改现有代码)

直接卸载当前版本的pycryptodomex,安装适配2.6.2版本连接器的版本即可,执行如下命令:
pip uninstall -y pycryptodomex && pip install pycryptodomex==3.13.0
安装完成后重新运行原有代码即可正常执行PUT指令。

方案2:升级snowflake-connector-python到最新稳定版

如果没有强制使用2.6.2版本连接器的要求,直接升级连接器到最新稳定版即可官方修复该依赖适配问题,执行命令:
pip install --upgrade snowflake-connector-python
升级完成后原有代码无需修改即可正常运行。

方案3:使用连接器原生文件上传方法(可选,性能更优)

如果后续需要频繁上传文件,也可以使用连接器内置的upload_file方法,避免直接写PUT语句的兼容性问题,参考代码如下:

import snowflake.connector
ctx = snowflake.connector.connect(
        user='lincavo',
        account='*****',
        password='*******',
        database='DEV_POC_VELOS_DB',
        schema='DATALAB',
        role='dev_data_analyst'
        )

# 直接调用连接对象的upload_file方法上传
ctx.upload_file(
    file_path="/home/lincoln/DEV/snowflake/100003097-SC.json",
    stage_location="@local_velos_json",
    auto_compress=False
)

ctx.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:36:03