在 Ubuntu 16.04 上构建的 Python 3.5 是否不支持 SSL?

在 Ubuntu 16.04 上构建的 Python 3.5 是否不支持 SSL?

我的问题很简单:在 Ubuntu 16.04 上构建的 python 3.5.1-3 是否没有 SSL 支持?

root@intranet:/opt/letsencrypt# /usr/bin/python3
Python 3.5.2 (default, Jul  5 2016, 12:43:10)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import HTTPSHandler
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'HTTPSHandler'
>>>

其他信息:

root@intranet:/opt/letsencrypt# dpkg-query -l 'python3*' | grep ssl
ii  python3-openssl               0.15.1-2build1          all          Python 3 wrapper around the OpenSSL library

root@intranet:/opt/letsencrypt# dpkg-query -l 'libssl*' | grep dev
ii  libssl-dev:amd64  1.0.2g-1ubuntu4.2 amd64        Secure Sockets Layer toolkit - development files
ii  libssl-doc        1.0.2g-1ubuntu4.2 all          Secure Sockets Layer toolkit - development documentation

答案1

存储库中的 Python3编译时已支持 SSL。您收到的错误是因为HTTPSHandler是第三方 Python 模块,而不是标准 Python 库的一部分。

您将需要安装该模块,以便python3 pip install您的 Python3 解释器能够识别它。


您可以使用以下命令验证 Python3 中对 HTTPS/SSL 的支持:

from urllib.request import urlopen
urlopen('https://askubuntu.com').read()

它会输出一堆 HTML,但它返回大量 HTML 的事实表明它支持 SSL。

(谢谢Oli 对一个类似但不同的问题的回答以获取代码片段。)

相关内容