安装 Snowflake Python APIs 库

您可以安装 Snowflake Python APIs 库,以便与 Conda 或虚拟环境一起使用。在开始之前,请务必查看 支持的 Python 版本

要设置 Snowflake Python APIs 库,请完成以下步骤:

  1. 激活 Python 环境。

  2. 可选:要在政府区域使用该库,请在环境中 构建 Python 加密库

    备注

    Snowflake Python APIs 库依赖 Python 加密库 (https://pypi.org/project/cryptography/) 进行身份验证。如果您使用的是符合 FIPS 的 Python 环境,则必须针对系统符合 FIPS 的 OpenSSL 编译密码库。

  3. 安装 库。

  4. 为 Python API 客户端 设置选项

激活 Python 环境

要设置运行 Python 代码的环境,需要激活 Python 环境。例如,您可以使用 conda 或虚拟环境 (venv)。

备注

这些步骤仅作为示例显示,按照示例操作可能需要对非 Snowflake 拥有或提供的第三方数据、产品或服务具有额外权利。在继续操作前,请确保您对第三方数据、产品或服务拥有适当的权利。

您可使用 conda 创建用于运行 Python 代码的环境。如您没有 conda,可从 conda 网站安装它。

  1. 创建 conda 环境:

    conda create -n <env_name> python==3.10
    
    Copy
  2. 激活环境:

    conda activate <env_name>
    
    Copy

为政府区域构建 Python 加密库

为了进行身份验证,Snowflake Python APIs 使用 Snowflake Connector for Python,它依赖于 Python 加密库 (https://pypi.org/project/cryptography/)。该加密库依赖于 OpenSSL (https://www.openssl.org/) C 库执行所有加密操作,并提供包含静态链接的 OpenSSL 依赖项的 wheel 包。

因此,当您使用默认命令 pip install cryptography 安装 cryptography 时,该库使用自己的 OpenSSL 版本,而非系统的版本。有关更多信息,请参阅 使用 OpenSSL (https://cryptography.io/en/latest/openssl/)。

如果您使用 Python API 连接到政府区域的 Snowflake 账户,则需要确保使用符合 FIPS 的 Python 环境。为了确保 FIPS 符合性,您必须自行根据系统符合 FIPS 的 OpenSSL 编译加密库,而非从 PyPI 的 wheel 安装加密库。

  • 有关在特定操作系统上构建加密库的说明,请参阅 cryptography 文档中的 安装 (https://cryptography.io/en/latest/installation/#installation)。

重要

在运行 pip install snowflake -U 之前,必须以这种方式构建加密库。此构建会设置 cryptography 依赖关系,并确保 cryptography 包并非从 PyPI 中拉取

必须使用符合 `Snowflake Connector for Python 库 <https://github.com/snowflakedb/snowflake-connector-python/blob/main/setup.cfg#L50 (https://github.com/snowflakedb/snowflake-connector-python/blob/main/setup.cfg#L50)> `_ 中定义的依赖关系要求的版本来编译加密库.

安装 Snowflake Python APIs 库

您可以从 Python Package Index (PyPI) 中安装 Snowflake Python APIs 库。

  • 在创建的 conda 或虚拟环境中,运行以下 pip 命令以安装库:

    pip install snowflake -U
    
    Copy

    Snowflake (https://pypi.org/project/snowflake/) 包是 Snowflake Python APIs 的 PEP 420 命名空间 (https://peps.python.org/pep-0420/) 的父包。它包括 snowflake.core,这是一个提供 Python APIs 的子包,用于管理 Snowflake 资源对象。

    安装 snowflake 包会自动安装 snowflake.core 及其所需的依赖项,包括 snowflake-connector-python

  • 若要同时安装 Snowpark ML Library 作为额外的包依赖项,您可以运行以下 pip 命令:

    pip install "snowflake[ml]" -U
    
    Copy

安装库后,须先创建与 Snowflake 的连接,然后才能使用 API。有关连接的更多信息,请参阅 使用 Snowflake Python APIs 连接到 Snowflake

设置 Python API 客户端选项

可以设置以下环境变量来控制 Snowflake Python APIs 的客户端选项:

_SNOWFLAKE_PRINT_VERBOSE_STACK_TRACE

指定在打印的错误消息中是否启用完整的堆栈跟踪。

可能的值如下:

  • 已启用:truetyesyon 或未定义

  • 已禁用:任何其他值

默认:已启用

禁用此选项后,API 客户端在处理请求时会将 sys.tracebacklimit 设置为 0。此设置会导致客户端抑制所有类型异常的回溯信息(不仅限于与 API 客户端相关的异常),并且仅打印错误消息。

要在 Python 笔记本环境中禁用该选项,请在笔记本中运行以下行:

%env _SNOWFLAKE_PRINT_VERBOSE_STACK_TRACE=false
Copy
_SNOWFLAKE_ENABLE_RETRY_REQUEST_QUERY

指定是否对具有特定状态码的查询请求启用自动重试。

可能的值如下:

  • 已启用:truetyesyon

  • 已禁用:任何其他值或未定义

默认:已启用

启用该选项后,API 客户端会在查询请求出现以下状态码时自动重试:

  • 202

  • 429

  • 503

  • 504

语言: 中文