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

运行cryptography代码出现Python3.6弃用警告如何解决

问题原因

该警告属于依赖弃用提示,不是代码语法错误:

  1. Python 3.6早在2021年12月就已停止官方维护,不再接收安全更新和bug修复
  2. 你当前环境安装的新版cryptography库已经明确将在后续版本中移除对Python 3.6的支持,警告是paramiko库导入cryptography依赖时触发的,和你写的那行from cryptography.hazmat.backends import default_backend导入代码没有直接关系。
排查步骤
  • 执行python3 --version确认当前运行代码的Python解释器实际版本,很多人升级系统Python后软链接未正确配置,实际运行代码的还是旧的3.6版本
  • 执行pip3 list | grep -E "cryptography|paramiko"查看当前环境安装的两个依赖的具体版本号
  • 如果使用虚拟环境,先确认是否激活了基于旧版Python 3.6创建的虚拟环境,避免环境混淆
解决方案

按优先级从高到低选择:

  1. 根治方案:升级Python版本
    升级Python解释器到3.7及以上长期维护版本(推荐3.8~3.10版本,兼容性更好),升级完成后重装对应依赖:

    # 先卸载旧版本依赖
    pip3 uninstall -y paramiko cryptography
    # 安装适配新Python版本的稳定版依赖
    pip3 install paramiko cryptography
    

    重装完成后再运行导入代码,警告会直接消失。

    注意:不要直接删除系统自带的旧Python版本,Linux系统大量底层组件依赖默认Python,强行删除会导致系统功能异常,推荐使用pyenv等版本管理工具实现多Python版本共存,或者用虚拟环境隔离项目依赖。

  2. 兼容方案(无法升级Python时使用)
    如果受业务限制暂时必须使用Python 3.6,直接把cryptography版本锁定在最后一个支持Python 3.6的版本即可:

    pip3 install "cryptography<39.0.0"
    

    锁定版本后既不会弹出弃用警告,也不会因为后续依赖自动升级导致代码运行报错。

  3. 临时方案(仅屏蔽警告)
    如果暂时不想改动依赖版本,只是不想看到警告输出,可以在代码最开头添加警告过滤规则:

    import warnings
    from cryptography.utils import CryptographyDeprecationWarning
    # 过滤cryptography弃用警告
    warnings.filterwarnings("ignore", category=CryptographyDeprecationWarning)
    

    注意:该方案只是隐藏了警告输出,没有解决根本兼容问题,后续cryptography正式移除Python 3.6支持后代码依然会报错,仅适合临时调试场景使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:01:13