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

使用Twilio遇SSL错误:AttributeError: 'module'无SSL_ST_INIT属性求解决

解决Twilio Python库中的SSL_ST_INIT AttributeError错误

嘿,我之前也踩过这个坑!这个AttributeError: 'module' object has no attribute 'SSL_ST_INIT'错误,本质上是pyOpenSSL和cryptography库版本不兼容,或者系统底层的OpenSSL库太旧导致的。咱们一步步来搞定它:

  • 先修复依赖版本冲突(最常见的解决办法)
    因为你用的是Python2.7(这个版本已经停止维护啦,长远建议升级到Python3),新版本的pyOpenSSL和cryptography已经不再支持Python2,所以得安装兼容的旧版本。先卸载现有冲突的包,再重新安装指定版本:

    pip uninstall -y pyopenssl cryptography
    pip install pyopenssl==19.1.0 cryptography==2.8
    

    这两个版本是经过验证的,能在Python2.7上稳定运行,同时完美兼容Twilio的Python库。

  • 检查并升级系统级OpenSSL
    运行下面的命令看看你系统的OpenSSL版本:

    openssl version
    

    如果版本低于1.0.1,那大概率是底层库太旧导致的绑定问题。在Ubuntu这类Debian系系统上,可以用下面的命令升级:

    sudo apt-get update && sudo apt-get install openssl
    

    注意:系统级升级可能影响其他依赖,操作前最好做好备份哦。

  • 强制Twilio使用系统CA证书(可选)
    有时候是证书信任问题引发的SSL错误,可以修改你的代码,让Twilio的客户端使用系统默认的CA证书:
    修改后的代码示例:

    import random
    from twilio.rest import Client
    from twilio.http.http_client import TwilioHttpClient
    
    TWILIO_ACCOUNT_SID = "asdfasdfsdfsdf"
    TWILIO_AUTH_TOKEN = "asdfasdfasdfasf"
    TWILIO_NUMBER = "+5555555"
    
    def send_text(body, target_phone_number):
        # 配置自定义HttpClient,使用系统证书
        http_client = TwilioHttpClient()
        http_client.session.verify = '/etc/ssl/certs/ca-certificates.crt'  # Ubuntu系统路径,其他系统请自行调整
        client = Client(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, http_client=http_client)
        message = client.messages.create(body=body, from_=TWILIO_NUMBER, to=target_phone_number)
    
    # 调用示例(记得替换为实际内容)
    send_text("测试消息", "+123456789")
    

最后提一句:Python2.7已经停止维护快4年了,很多第三方库都不再更新支持它,长远来看建议你迁移到Python3.x,能避免很多这类奇怪的兼容问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:48:34