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

使用IBM Watson执行翻译任务时遇SSL.TLSVersion属性错误

问题描述

我是Python新手,正在完成Coursera课程作业,需编写代码调用IBM Watson翻译服务。已按步骤创建包含apikey和url的.env文件、编写翻译代码,并安装了python-dotenv、ibm_watson、Flask库,但运行代码时出现错误:AttributeError: module 'ssl' has no attribute 'TLSVersion'

错误栈信息:

Traceback (most recent call last):   File "translator.py", line 14, in <module>
        lt = LanguageTranslatorV3(version='2018-05-01', authenticator=authenticator)   File "/home/theia/.local/lib/python3.6/site-packages/ibm_watson/language_translator_v3.py", line 76, in __init__
        authenticator=authenticator)   File "/home/theia/.local/lib/python3.6/site-packages/ibm_cloud_sdk_core/base_service.py", line 97, in __init__
        self.http_adapter = SSLHTTPAdapter()   File "/home/theia/.local/lib/python3.6/site-packages/ibm_cloud_sdk_core/utils.py", line 35, in __init__
        super().__init__(*args, **kwargs)   File "/home/theia/.local/lib/python3.6/site-packages/requests/adapters.py", line 130, in __init__
        self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block)   File "/home/theia/.local/lib/python3.6/site-packages/ibm_cloud_sdk_core/utils.py", line 42, in init_poolmanager
        ssl_context.minimum_version = ssl.TLSVersion.TLSv1_2 AttributeError: module 'ssl' has no attribute 'TLSVersion'

使用的翻译代码:

import json
from ibm_watson import LanguageTranslatorV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
import os
from dotenv import load_dotenv

load_dotenv()

apikey = os.environ['apikey']
url = os.environ['url']

# Setup service
authenticator = IAMAuthenticator(apikey)
lt = LanguageTranslatorV3(version='2018-05-01', authenticator=authenticator)
lt.set_service_url(url)

translation = lt.translate(text='We are sinking.', model_id='en-de').get_result()
translation
translation['translations'][0]['translation']
解决方案
  • 升级Python版本:将Python升级到3.7或更高版本,ssl.TLSVersion是Python 3.7及以上才新增的属性,新版IBM Cloud SDK依赖该属性配置TLS版本,升级后可直接解决问题。
  • 降级SDK版本:如果暂时无法升级Python,安装兼容Python 3.6的旧版SDK,执行命令:
    pip install ibm-cloud-sdk-core==3.10.1 ibm-watson==5.3.1
    
    这两个版本的SDK不依赖ssl.TLSVersion,能在Python 3.6环境下正常运行。
  • 临时修改SDK源码(不推荐):找到报错的ibm_cloud_sdk_core/utils.py文件,将ssl_context.minimum_version = ssl.TLSVersion.TLSv1_2替换为Python 3.6支持的写法:
    ssl_context.options |= ssl.OP_NO_TLSv1 | ssl.OP_NO_TLSv1_1
    
    该方法仅作应急,后续更新SDK会覆盖修改,不建议长期使用。

内容的提问来源于stack exchange,提问作者S. R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:01:52