我正在尝试使用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时,它的工作正常。
我真的很难过。有人可以帮忙吗?
答案 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