在Python 3.7.3虚拟环境安装cryptography时遇gcc编译错误
解决cryptography安装时的OpenSSL版本匹配问题
问题核心
从报错日志来看,尽管你已安装libssl-dev 1.1.1n包,但系统当前实际运行的OpenSSL版本仍是旧版1.1.1d(从[upgradable from: 1.1.1d-0+deb10u5+rpt1]可确认),导致cryptography编译时检测到的版本不满足要求,触发编译错误。
解决步骤
1. 完成OpenSSL相关包的升级
当前libssl1.1和openssl包处于可升级状态,先执行命令完成升级,让系统切换到新版本:
sudo apt update && sudo apt upgrade libssl1.1 openssl libssl-dev -y
2. 验证OpenSSL版本是否生效
升级完成后,执行以下命令确认版本:
openssl version
输出应显示OpenSSL 1.1.1n ...,确认版本正确后,重新尝试安装:
pip install cryptography
3. 若升级后仍报错,指定OpenSSL路径编译
如果系统存在多版本OpenSSL,编译时可能未找到正确路径,可通过环境变量指定:
export CFLAGS="-I/usr/include/openssl" export LDFLAGS="-L/usr/lib/arm-linux-gnueabihf" pip install cryptography
4. 降级cryptography版本适配环境
若上述方法无效,可尝试安装适配Python 3.7和旧版OpenSSL的cryptography旧版本,比如3.4.8版本:
pip install cryptography==3.4.8
内容的提问来源于stack exchange,提问作者zenu
相关产品推荐
相关产品推荐

