Ibm cloud Python出现IBM Bluemix API密钥错误

Ibm cloud Python出现IBM Bluemix API密钥错误,ibm-cloud,ibm-watson,Ibm Cloud,Ibm Watson,我试图使用Python来编程watson_developer_cloud,但我遇到了一个API密钥错误。我的代码非常简单: import json from watson_developer_cloud import VisualRecognitionV3 as VisualRecognition visual_recognition = VisualRecognition('2016-05-20', api_key='<myAPIkey>') test_url = 'https:

我试图使用Python来编程watson_developer_cloud,但我遇到了一个API密钥错误。我的代码非常简单:

import json
from watson_developer_cloud import VisualRecognitionV3 as VisualRecognition

visual_recognition = VisualRecognition('2016-05-20', api_key='<myAPIkey>')
test_url = 'https://www.ibm.com/ibm/ginni/images/ginni_bio_780x981_v4_03162016.jpg'

print(json.dumps(visual_recognition.classify(images_url=test_url)))
导入json
从watson_developer_cloud导入VisualRecognitionV3作为VisualRecognition
视觉识别=视觉识别('2016-05-20',api_键='')
测试https://www.ibm.com/ibm/ginni/images/ginni_bio_780x981_v4_03162016.jpg'
打印(json.dumps(视觉识别.classify(图像url=testURL)))
但由于某种原因,当我运行它时,会出现SSL错误:

requests.exceptions.SSLError:主机名“gateway-a.watsonplatform.net”与“access.alchemyapi.com”、“www.access.alchemyapi.com”均不匹配

我知道API键(上面省略)可以工作,因为当我使用CURL或NodeJS时,它工作得很好


我真的被难住了。有人能帮忙吗?

找到了答案。事实证明,由于服务器名称标识(SNI),您需要python>=2.7.8。我的python版本是2.7.3,它不支持这一点,因此我得到了上面看到的错误


这就是为什么CURL和其他使用API键的尝试能够奏效,而我的python却在生成SSLError。升级愉快

快速黑客: 更改文件-
watson\u developer\u cloud\u service.py:243
,如下所示:

diff watson_developer_cloud_service.py watson_developer_cloud/watson_developer_cloud_service.py
243c243
<                                     params=params, data=data, files=files, verify=False, **kwargs)
---
>                                     params=params, data=data, files=files, **kwargs)
接着是

python setup.py install

更新:有趣的是,我发现如果我使用CURL访问Watson,事情就会进展顺利。因此,这似乎与have请求有关,因为正在处理/SSL,这绝对不是ibmwatson服务器的问题。
python setup.py install