我刚刚在我的 MacOS Sierra 中将我的 Django 1.10 (Python 3.5) 应用程序升级到 Django 1.11 (Python 3.6)。
大多数事情仍然有效,但我意识到 SSL 连接不再像以前那样工作了。我注意到我的 AWS S3 服务和 python manage.py collectstatic
存在一些问题。这些功能未与 AWS 连接/进行身份验证。
这是我第一次在那里处理我的 Django 应用程序的更新,所以我不太确定处理这些问题的正确方法是什么。
我做了一些研究,发现这是一个预期的问题,来自使用 python 3.6 的 Mac。
有谁知道为此寻找解决方案是否值得,还是切换回 python 3.5 更好?
根据 Python 3.6 ReadMe.rft:
证书验证和 OpenSSL
NEW Python 3.6 的这个变体现在包括它自己的 OpenSSL 1.0.2 私有(private)副本。与以前的版本不同,不再使用已弃用的 Apple 提供的 OpenSSL 库。这也意味着由 Keychain Access 应用程序和安全命令行实用程序管理的系统和用户钥匙串(keychain)中的信任证书不再被 Python ssl 模块用作默认值。对于 3.6.0,/Applications/Python 3.6 中包含一个示例命令脚本,用于从第三方 certifi 包 (https://pypi.python.org/pypi/certifi) 安装精选的默认根证书包。如果您选择使用 certifi,您应该考虑订阅该项目的电子邮件更新服务,以便在更新证书包时收到通知。 Python 3.6 安装程序附带的捆绑 pip 有自己的默认证书存储区,用于验证下载连接。
最佳答案
好的,我意识到我的项目出了什么问题。
我将 django-storages-redux 与 boto 一起使用。 现在我必须更新到 boto3 并使用 django-storages 库。
关于amazon-web-services - Django 1.11 : Python 3. 6 升级导致 SSL 连接出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44055112/