我的问题很简单:在 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 对一个类似但不同的问题的回答以获取代码片段。)