无法通过Python连接Snowflake的技术求助及排查结果反馈
Python连接Snowflake超时问题排查与解决
问题背景
- Python版本:3.11
- Snowflake Python Connector版本:3.0.2
- 异常现象:浏览器使用相同URL和密码可正常连接Snowflake,但Python脚本连接失败;通过
snowcd检测发现4项主机连接超时:api-35a58de5.duosecurity.com:443(DUO_SECURITY):HTTP检查超时o.ss2.us:80(OCSP_RESPONDER):HTTP检查超时app.snowflake.com:443(SNOWSIGHT_DEPLOYMENT):HTTP检查超时apps-api.c1.us-west-2.aws.app.snowflake.com:443(SNOWSIGHT_DEPLOYMENT):证书检查超时
解决步骤
1. 配置代理参数
浏览器通常会自动读取系统代理,但Python脚本默认不会,需显式配置:
- 在连接代码中添加代理参数:
import snowflake.connector conn = snowflake.connector.connect( account='你的账户名', user='你的用户名', password='你的密码', warehouse='你的仓库', database='你的数据库', schema='你的 schema', proxy_host='代理服务器地址', # 例如 'proxy.company.com' proxy_port=代理端口, # 例如 8080 # 若代理需要认证,添加以下两行 # proxy_user='代理用户名', # proxy_password='代理密码' ) - 或通过环境变量全局配置(Python会自动读取):
# Linux/macOS export HTTP_PROXY=http://proxy_host:port export HTTPS_PROXY=https://proxy_host:port # Windows 命令行 set HTTP_PROXY=http://proxy_host:port set HTTPS_PROXY=https://proxy_host:port
2. 验证网络连通性
手动测试超时主机的访问情况,确认网络是否允许连接:
# 测试DUO安全服务主机 curl -v https://api-35a58de5.duosecurity.com:443 # 测试OCSP响应主机 curl -v http://o.ss2.us:80 # 测试SnowSight相关主机 curl -v https://app.snowflake.com:443 curl -v https://apps-api.c1.us-west-2.aws.app.snowflake.com:443
若这些命令也超时,需联系IT团队开放对应域名和端口的访问权限。
3. 延长连接超时时间
在连接参数中增加超时配置,延长等待时长:
conn = snowflake.connector.connect( # 其他必要参数... login_timeout=60, # 登录超时,单位:秒 network_timeout=60 # 网络超时,单位:秒 )
4. 升级Snowflake Connector
当前3.0.2版本可能存在已知问题,尝试升级到最新稳定版:
pip install --upgrade snowflake-connector-python
内容的提问来源于stack exchange,提问作者user166013
相关产品推荐
相关产品推荐

