我想把我的头发拉出来试图让我的本地机器上运行Stripe的Django应用程序使用OSX 10.12.3。我在尝试运行测试付款时遇到的错误是:
/ register处的PermissionError请求req_ADIwntj3xGaqUF:Stripe no 更长时间支持使用TLS 1.0进行的API请求。请启动HTTPS 与TLS 1.2或更高版本的连接。你可以在这里了解更多相关信息 https://stripe.com/blog/upgrading-tls
我使用brew成功升级了openssl。当我运行openssl version
时输出为:
OpenSSL 1.0.2k 26 Jan 2017
当我运行which openssl
时,输出为:
/usr/local/opt/openssl/bin/openssl
我发现堆栈溢出的说明是运行brew link --force openssl
。当我这样做时,错误是:
警告:拒绝链接:openssl链接keg-only openssl意味着你 最终可能会链接到不安全,已弃用的系统OpenSSL 使用Homebrew的openssl标题时。相反,通过 编译器的完整包含/库路径,例如:
-I / usr / local / opt / openssl / include -L / usr / local / opt / openssl / lib
有人可以帮我搞定吗?
答案 0 :(得分:8)
Python环境中的问题和尝试的解决方案似乎如下:
pip install urllib3
pip install pyopenssl
pip install ndg-httpsclient
pip install pyasn1
pip uninstall requests
pip install requests
请参阅https://github.com/pinax/pinax-stripe/issues/267和How to run django runserver over TLS 1.2
这就是假设你正在运行Python 2.7.9+。早期的Python版本没有TLS 1.2支持。
答案 1 :(得分:3)
对于使用brew
+ pyenv
+ pyenv-virtualenv
的人来说,这就解决了我在Mac上丢失TLS 1.2的问题:
# Update XCode
# Restart machine
Type:
$ brew update
$ brew upgrade pyenv
$ pyenv install 3.4.6 # the latest version of Python 3.4
$ pyenv global 3.4.6 # make default python
$ pyenv virtualenv 3.4.6 myenv
$ pyenv activate myenv
$ pip install -r requirements.txt
希望有一天对某人有用。