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

Mac M1环境Python连接Snowflake触发MemoryError报错求助

问题背景

在Jupyter Notebook中使用Python建立Snowflake连接时持续触发相同报错,对应运行环境如下:

  • 设备:Mac M1 芯片设备
  • Python版本:3.10.4
  • Conda版本:4.13.0
复现代码

完成环境标签配置后,使用如下代码发起连接:

connection = snow.connect(
    user = user,
    password = password,
    account = '****.us-****-*',
    warehouse = 'COMPUTE_WH',
    authenticator = authenticator
)
报错信息

代码执行后首先输出身份提供商登录引导提示,随即抛出MemoryError异常,核心报错输出如下:

Initiating login request with your identity provider. A browser window should have opened for you to complete the login. If you can't see it, check existing browser windows, or your OS settings. Press CTRL+C to abort and try again...

MemoryError: Cannot allocate write+execute memory for ffi.callback(). You might be running on a system that prevents this.

排查解决思路
  • 优先升级相关依赖修复适配问题:Mac M1的ARM架构对低版本cffi的内存权限机制适配存在已知缺陷,是触发该报错的最核心原因。在当前conda环境执行命令pip install --upgrade cffi cryptography snowflake-connector-python,升级完成后重启Jupyter内核,再重新运行连接代码即可,绝大多数同场景问题可通过该操作解决。
  • 校验当前Python环境的运行架构:在Notebook单元格执行代码import platform; print(platform.machine()),如果输出结果不是arm64,说明当前conda环境是通过Rosetta 2转译运行的x86版本Python,转译层会拦截ffi回调所需的可写可执行内存分配。此时直接新建原生arm64架构的conda环境,重装Snowflake连接相关依赖即可解决。
  • 临时规避方案:如果短时间内无法调整环境配置,可以修改连接的认证方式,替换掉需要拉起本地浏览器的SSO认证逻辑,改用用户名密码直连、密钥对认证等不需要调用本地浏览器回调的认证方式,即可跳过触发报错的内存分配环节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:12:19