Python

时间:2016-07-13 13:16:28

标签: 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://www.ibm.com/ibm/ginni/images/ginni_bio_780x981_v4_03162016.jpg'

print(json.dumps(visual_recognition.classify(images_url=test_url)))

但由于某些原因,当我运行它时,我收到了SSL错误:

  

requests.exceptions.SSLError:主机名'gateway-a.watsonplatform.net'与'access.alchemyapi.com','www.access.alchemyapi.com'不匹配

我知道API密钥(上面省略)是有效的,因为当我使用CURL或NodeJS时,它的工作正常。

我真的很难过。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

想出来。事实证明,由于服务器名称识别(SNI),您需要python&gt; = 2.7.8。我的python版本是2.7.3,它不支持,因此我得到上面看到的错误。

因此,这就是为什么CURL和其他尝试使用API​​密钥的原因,而我的python正在生成SSLError。快乐升级!

答案 1 :(得分:1)

快速黑客: 更改文件 - watson_developer_cloud_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)

之后 -

rm -f /usr/lib/python2.7/site-packages/watson_developer_cloud-0.14.0-py2.7.egg

接下来是..

python setup.py install