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

Big Sur系统下执行Poetry update时安装cryptography库报错

解决Poetry更新cryptography时的OpenSSL头文件缺失问题

我来帮你搞定这个头疼的问题!你遇到的核心矛盾是:cryptography在虚拟环境编译时找不到OpenSSL的头文件,虽然你在系统层面修复了依赖,但虚拟环境的构建过程没正确关联到这些系统资源。下面是针对macOS环境的几个实用解决办法:

方法一:给Poetry指定OpenSSL路径

通过设置环境变量,直接告诉cryptography的构建工具去哪里找OpenSSL的头文件和库,步骤如下:

# 先确保系统已经安装了OpenSSL(用Homebrew的话执行这个)
brew install openssl
# 临时设置环境变量,让编译工具能定位到OpenSSL
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export CPPFLAGS="-I$(brew --prefix openssl)/include"
# 单独更新cryptography,或者直接执行全量更新
poetry update cryptography

这样虚拟环境里的编译过程就能正确获取到OpenSSL依赖,顺利构建wheel包了。

方法二:升级构建工具版本

旧版本的Poetry、pip或者构建后端可能存在兼容性问题,试试更新这些工具:

  • 先把Poetry本身更到最新版:
poetry self update
  • 再在虚拟环境里升级setuptools和wheel(这俩是构建Python包的核心工具):
poetry run pip install --upgrade setuptools wheel

更新完成后再执行poetry update,新版本的工具通常会更智能地处理系统依赖的查找逻辑。

方法三:重新创建虚拟环境

如果上面的方法都没效果,那就彻底重置虚拟环境,从头来过:

# 删除当前的虚拟环境
poetry env remove python3.9
# 再次设置OpenSSL的环境变量
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export CPPFLAGS="-I$(brew --prefix openssl)/include"
# 让Poetry重新创建虚拟环境并安装所有依赖
poetry install

全新的虚拟环境会在正确的环境变量下安装依赖,应该能避开之前的编译问题。

小提示

如果你不是用Homebrew安装的OpenSSL,记得把命令里的$(brew --prefix openssl)替换成你系统里OpenSSL的实际安装路径,比如/usr/local/opt/openssl之类的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 10:02:41