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

Mac下导入spaCy遇NotOpenSSLWarning问题求助

解决Mac上spaCy导入时的urllib3/LibreSSL警告问题

方案一:让Python链接到brew安装的OpenSSL@1.1

Mac系统默认Python依赖自带的LibreSSL,导致和urllib3 v2.0不兼容。需要让Python使用brew安装的OpenSSL版本:

  • 先确认当前Python的SSL版本:
    python -c "import ssl; print(ssl.OPENSSL_VERSION)"
    
    如果输出是LibreSSL 2.8.3,说明确实是系统SSL的问题。
  • 配置环境变量,让系统优先使用brew的OpenSSL@1.1:
    如果你用zsh,执行:
    echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc
    echo 'export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"' >> ~/.zshrc
    echo 'export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"' >> ~/.zshrc
    
    如果你用bash,把.zshrc换成.bash_profile。
  • 重启终端,用pyenv重新安装Python(确保Python编译时链接新的OpenSSL):
    1. 安装pyenv:
      brew install pyenv
      
    2. 配置pyenv到shell:
      zsh用户:
      echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
      echo 'eval "$(pyenv init -)"' >> ~/.zshrc
      
      bash用户对应修改.bash_profile。
    3. 重启终端后,安装兼容的Python版本(比如3.9.16):
      pyenv install 3.9.16
      
    4. 设置项目目录使用该Python:
      cd 你的项目目录
      pyenv local 3.9.16
      
    5. 创建并激活虚拟环境:
      python -m venv venv
      source venv/bin/activate
      
    6. 重新安装spaCy和指定版本的urllib3:
      pip install spacy urllib3==1.26.6
      

方案二:直接忽略警告

如果上述方法无法解决,且警告不影响功能,可以在代码开头添加忽略警告的逻辑:

import warnings
from urllib3.exceptions import NotOpenSSLWarning
warnings.filterwarnings("ignore", category=NotOpenSSLWarning)
import spacy

方案三:确认Python解释器路径

确保VSCode和Jupyter使用的是你配置好的虚拟环境/pyenv Python,而非系统默认Python:

  • VSCode:点击左下角的Python解释器选择框,选择虚拟环境中的Python路径。
  • Jupyter:打开Kernel菜单,选择Change Kernel,切换到对应的虚拟环境内核。

内容的提问来源于stack exchange,提问作者researcher.ella

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:27:17