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

升级Python至3.9.15后Jenkins中Cryptography包PanicException报错求助

问题解决思路与方案

清理Jenkins环境缓存

本地构建正常但Jenkins失败,大概率是环境残留的旧编译文件导致。在构建脚本中加入:

# 删除虚拟环境和pip缓存
rm -rf .venv/
rm -rf ~/.cache/pip/

# 重建虚拟环境并重新安装依赖(禁用缓存)
python3.9 -m venv .venv
source .venv/bin/activate
pip install --no-cache-dir -r requirements.txt

补全系统编译依赖

cryptography的Rust绑定需要完整的编译环境,Jenkins服务器可能缺失依赖。以Ubuntu为例,执行:

sudo apt-get update && sudo apt-get install -y build-essential libssl-dev libffi-dev rustc cargo

然后强制重新编译cryptography:

pip install --force-reinstall --no-binary :all: cryptography

确认Python版本一致性

确保Jenkins实际使用的是3.9.15,避免版本混淆:

# 在构建脚本中添加版本检查
python --version
which python

如果用版本管理工具(如pyenv),要保证Jenkins的环境变量正确指向3.9.15。

验证Moto兼容性

虽然依赖版本未变,但部分Moto版本可能对Python小版本升级存在隐性问题:

  • 尝试升级Moto到最新兼容版:
    pip install --upgrade moto
    
  • 查看Moto发布日志,确认是否有针对Python 3.9.x小版本的修复记录。

临时禁用Rust后端

如果以上方法都无效,可以强制cryptography使用纯Python后端:

  • 在测试代码开头添加:
    import os
    os.environ["CRYPTOGRAPHY_DONT_BUILD_RUST"] = "1"
    
  • 或者在Jenkins构建环境中设置环境变量:
    export CRYPTOGRAPHY_DONT_BUILD_RUST=1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:36:03