如何在Snowflake原生应用中安装本地开发的Python Wheel文件
在Snowflake原生应用中安装本地Python Wheel文件的解决方案
问题描述
按照使用PyPI包的Snowpark教程操作后,安装本地开发的perpetual Wheel文件时,持续触发以下错误:
093082 (42601): 01b44791-0102-aab9-0000-0002b61281f9: Failed to execute setup script:
Uncaught exception of type 'STATEMENT_ERROR' on line 34 at position 0 : SQL compilation error: Package 'perpetual' is not supported.
可行的安装步骤
1. 上传本地Wheel文件到Snowflake内部阶段
先创建一个内部阶段(若已有可跳过),再用PUT命令将本地Wheel文件上传至该阶段:
-- 创建内部阶段 CREATE OR REPLACE STAGE MY_WHEEL_STAGE FILE_FORMAT = (TYPE = 'CSV' COMPRESSION = 'AUTO'); -- 上传本地Wheel文件(替换为你的本地文件路径) PUT file:///local/path/to/perpetual-xxx.whl @MY_WHEEL_STAGE AUTO_COMPRESS = FALSE;
2. 在原生应用部署脚本中引用阶段内的Wheel
不要使用PyPI包的声明语法,直接通过阶段路径指定本地Wheel文件:
CREATE OR REPLACE PACKAGE PERPETUAL_PACKAGE USING '@MY_WHEEL_STAGE/perpetual-xxx.whl' WITH IMPORTS = ('perpetual');
注意:需保证Wheel文件名与阶段内的路径完全匹配,同时给原生应用的角色分配该阶段的USAGE和READ权限。
3. 在Snowpark代码中验证包可用性
在Snowpark Python脚本中导入并测试包:
from snowflake.snowpark import Session session = Session.builder.getOrCreate() session.add_import('@MY_WHEEL_STAGE/perpetual-xxx.whl') import perpetual # 执行包内测试逻辑,确认功能正常
关键注意事项
- 确保Wheel文件兼容Snowflake的Python运行时版本:Snowflake当前主要支持Python 3.8、3.9,需生成对应版本的Wheel,且包需为纯Python类型或包含Snowflake支持平台的编译二进制文件。
- 若本地Wheel存在依赖包,需将所有依赖的Wheel文件一并上传至阶段,并在创建包时通过逗号分隔引用多个文件。
内容的提问来源于stack exchange,提问作者Mutlu Simsek
相关产品推荐
相关产品推荐

