我意识到这是最近常见的错误,但我在网上找到的解决方案都没有帮助我。我正在尝试在 Jupyter Notebook 中使用 spaCy 并在 Mac OS 上使用 VScode ,但每次尝试导入 spacy 时,都会收到以下错误:
NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
warnings.warn(
我试过了
brew install [email protected]
这不起作用,所以我尝试使用
降级 urllib3pip install urllib3==1.26.6
也没有用。我尝试使用虚拟环境,也不起作用。我一直在网上搜索试图找到解决方案,但似乎没有任何效果。
这并不是真正的 spaCy 问题,而是 Python 安装的问题。您可以尝试安装旧版本的 urllib3,例如,我有一个虚拟环境,其中包含最新版本的 spaCy 3.5 和 urllib3 1.26.15,效果很好:
pip install urllib3=1.26.15
如果这不起作用,请使用 pip show urllib3 确认该版本确实已安装以及您收到的错误。另一种选择是构建或安装针对 OpenSSL 1.1.1 或更高版本构建的 Python 版本。
I tried
brew install [email protected]
这通常不起作用,因为 Homebrew 将 openssl 安装为仅桶,这意味着该库不可见,除非您明确链接它。其次,SSL 模块链接到 libressl,它很可能具有不同的共享库版本。最后,SSL 模块可以对库路径进行硬编码(在我的安装中确实如此)。
在尝试使用 Python“请求”HTTP 库时,我遇到了类似的问题,同样的错误消息。以下步骤让它在 Apple M1 Pro - Ventura 13.5 上适用。
安装 Homebrew(如果尚未安装):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
或者通过他们新的 .pkg 安装程序:Homebrew 4.1.3
将 Homebrew 添加到您的路径(我使用的是 bash):
echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> ~/.bash_profile
安装最新版本的openssl:
brew install [email protected]
确保 openssl 位于您的路径中的第一个,因为brew将其安装为仅桶。
echo 'export PATH="/opt/homebrew/opt/[email protected]/bin:$PATH"' >> /Users/<username>/.bash_profile