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

将Googletrans移植到Snowflake Snowpark UDF时遇ModuleNotFoundError求解

解决Snowpark UDF中Googletrans模块找不到的问题

以下是解决ModuleNotFoundError的具体步骤:

  • 检查压缩包结构
    确保你上传的googletrans.zip解压后,根目录直接是googletrans模块文件夹(包含__init__.py、client.py等核心文件),而非嵌套在其他父文件夹中。错误的结构会导致Python无法识别该模块。

  • 在UDF代码中添加模块路径
    Snowpark会将导入的文件存放在临时目录,需要手动将该目录加入Python的搜索路径。修改你的UDF代码:

    import sys
    from snowflake.snowpark.functions import udf
    from snowflake.snowpark.files import get_import_path
    
    session = snowpark_session('DWH', 'MY_SCHEMA')
    # 使用完整阶段路径确保导入正确
    session.add_import("@DWH.MY_SCHEMA.PACKAGES/googletrans.zip")
    session.add_packages("snowflake-snowpark-python", "pandas", "numpy", "scikit-learn", "spacy", "httpx")
    
    @udf(name='MY_FUNCTION', replace=True, is_permanent=True, stage_location="@MODEL_STAGE")
    def myFun(text:str) -> bool:
        # 获取导入文件的临时路径并加入sys.path
        sys.path.append(get_import_path())
        import googletrans
        translator = googletrans.Translator()
        # ... 你的业务逻辑
        return True
    
  • 补充Googletrans的依赖包
    Googletrans依赖httpx等第三方库,这些库未被Snowpark默认包含。需要通过session.add_packages()添加这些依赖(如果Snowflake的Anaconda仓库提供),或者将依赖包也打包上传到阶段并添加导入。

  • 验证阶段文件路径
    执行LIST @DWH.MY_SCHEMA.PACKAGES;命令,确认googletrans.zip确实存在于指定阶段中,避免路径拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:18:28