![16.04 版全新安装中 Python 3 缺少 SSL](https://linux22.com/image/889138/16.04%20%E7%89%88%E5%85%A8%E6%96%B0%E5%AE%89%E8%A3%85%E4%B8%AD%20Python%203%20%E7%BC%BA%E5%B0%91%20SSL.png)
因此,我的项目所需的模块需要安装 SSL。我听说 Ubuntu 自带的 Python 支持 SSL,因此我使用以下命令检查了全新安装的 Ubuntu 16.04 LTS 64 位上是否有 SSLOli 的代码片段:
from urllib.request import urlopen
urllib.request.urlopen('https://askubuntu.com').read()
他们说如果 SSL 正常工作,它应该会输出一些 HTML,但我收到的只是这个错误:
Traceback (most recent call last):
File "ssltest.py", line 2, in <module>
urllib.request.urlopen('https://askubuntu.com').read()
NameError: name 'urllib' is not defined
记住,这是 Ubuntu 16.04 的全新安装,我已经看到很多其他答案说它应该带有 SSL。
- 我需要安装该
urllid
模块吗? - 我是否需要安装其他模块?
- 我是否需要获取某种 SSL“证书”?
- 我是否需要重新编译 Python 并冒着系统崩溃的风险?(希望不是这个)
- 我需要重新安装 Ubuntu 吗?
- 还有别的吗?
答案1
还有别的吗?
错误仅出现在您的程序中(以及您引用的原始帖子中,我现在已经修复了该错误)。您必须使用导入的 urlopen 函数:
from urllib.request import urlopen
urlopen('https://askubuntu.com').read()
或者导入 urllib.request 库:
import urllib.request
urllib.request.urlopen('https://askubuntu.com').read()
但不能将两者混合使用,即使用仅导入了函数的库,就像您的情况一样。