2017-07-19 26 views
0

这是我的代码到目前为止。当使用Python中要求我给出以下错误:当在python中使用请求时,我给出了以下错误“TLSV1_ALERT_PROTOCOL_VERSION。”为什么会发生这种情况?

TLSV1_ALERT_PROTOCOL_VERSION. 

为什么会这样发生?

import requests 

def lambda_handler(event, context): 

    # context = ssl.OPENSSL_VERSION_INFO 

    # print(context) 
    # if event['session']['application']['applicationId'] != app_id: 
    #  raise ValueError("Invalid Application ID") 

    token = requests.post(html, data={'apikey': api_key}, auth=(username, password), verify=False) 

    print(token.text) 
    payload = {'token': token} 

    requests.post(html_step_two, data=payload, verify=False) 

    payload = {'token': token, 'workflow_id': workflow_id} 
    requests.post(workflow_run, data=payload, verify=False) 

    return 'Hello from Lambda' 

回答

1

你没有提到你使用哪个版本的openSSL,但它可能是罪魁祸首!这是一个相当普遍的问题,并且似乎最好通过全新安装openSSL和Python来解决。

要检查您所使用的OpenSSL的版本,去你的Python终端输入

import platform 
import ssl 

print("Python info: %s" % (platform.python_version())) 
print("OpenSSL info: %s" % (ssl.OPENSSL_VERSION)) 

如果OpenSSL的信息返回为OpenSSL 0.9.8zh 14 Jan 2016,你可能会遇到问题。在我的Mac上,这返回OpenSSL 1.0.2j 26 Sep 2016,它与我以前使用过的其他请求应用程序一起工作。

此时的解决方案可能是卸载openSSL并重新安装它!但是,您也可能想要升级brew的安装,因为它可能不是关于OpenSSL的benefitting from an update released last September

看着网络上的几个例子后,我相信最直接的和全面的方式重新安装openssl和升级brew(假设没有任何其他问题)是通过运行:

brew uninstall openssl 

brew update && brew upgrade && brew cleanup && brew doctor 

采取由brew doctor修复带来了任何问题,时间终于运行

这将确保您运行的是最新版本的OpenSSL,并且应该有助于解决问题!

这里有一个注意事项,升级Homebrew会将您安装的所有软件包更新为最新版本。如果您的某些其他编码项目依赖于以前版本brew中包含的现在不推荐使用的软件包,则这可能不适合您。我不认为这是一个大问题,但只是一个参考!

如果这种卸载的OpenSSL不适用于您,那么有other ways,但是如果上述解决方案不起作用,我会想象会出现更大的问题。

希望它有帮助!

来源

+0

好吧我的OpenSSL BREW版本现已更新,但Python版本一直没有。我在网上尝试过各种解决方案,但没有一个似乎在工作。具体来说,我试图将我的bash配置文件的路径更改为/ usr/local/bin /,并尝试安装python --with-brewed-openssl,但都没有工作。 –

+0

你也运行过'酿造升级'吗? – cosinepenguin

+0

是的,我做到了。我现在试了一些其他的东西,但它仍然没有修复它。 –

相关问题