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

Snowflake函数导入googletrans模块遇httpcore属性错误及版本兼容问题

解决Snowflake中调用googletrans时的httpcore属性错误及依赖兼容问题

问题根源

googletrans新版本依赖的httpcore/httpx版本与Snowflake内置Python环境不兼容,或者打包时未适配Snowflake的Linux x86_64平台,导致出现AttributeError: module 'httpcore' has no attribute 'SyncHTTPTransport',调整版本后又触发依赖冲突。

解决步骤

  • 锁定兼容版本组合
    使用经过验证的稳定版本组合,确保与Snowflake环境适配:
    googletrans==4.0.0-rc1 + httpcore==0.15.0 + httpx==0.23.0

  • 适配Snowflake平台打包依赖
    避免本地平台依赖干扰,用pip指定Snowflake的Linux x86_64平台下载二进制包:

    pip install googletrans==4.0.0-rc1 httpcore==0.15.0 httpx==0.23.0 --platform linux_x86_64 --only-binary=:all: -t ./googletrans_package
    
  • 正确打包成Zip
    进入googletrans_package目录,将所有文件和子目录直接打包为zip(不要包含外层的googletrans_package文件夹):

    cd googletrans_package
    zip -r ../googletrans.zip .
    
  • 上传至Snowflake Stage
    使用PUT命令将zip包上传到你的Snowflake Stage(关闭自动压缩避免重复处理):

    PUT file:///本地路径/googletrans.zip @your_stage AUTO_COMPRESS=FALSE;
    
  • 创建并测试UDF
    创建Python UDF时指定导入的包,示例代码:

    CREATE OR REPLACE FUNCTION TRANSLATE_TEXT(input_str STRING, target_lang STRING)
    RETURNS STRING
    LANGUAGE PYTHON
    RUNTIME_VERSION = 3.8 -- 与打包时的Python版本匹配
    IMPORTS = ('@your_stage/googletrans.zip')
    HANDLER = 'translate.handler'
    AS $$
    from googletrans import Translator
    
    def handler(input_str, target_lang):
        translator = Translator()
        return translator.translate(input_str, dest=target_lang).text
    $$;
    
    -- 测试函数
    SELECT TRANSLATE_TEXT('Hello World', 'zh-CN');
    

关键说明

  • Snowflake的Python运行时基于Linux x86_64,必须指定对应平台打包,否则会出现依赖架构不兼容问题。
  • 避免使用googletrans的最新正式版,其依赖的httpcore版本过高,与Snowflake环境冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:07:10