如何在python中导入OpenSSL

use*_*774 26 python openssl python-2.7

我试图运行这个简单的代码来检索SSL证书:

import ssl, socket

#print ssl.get_server_certificate(('www.google.com', 443))
cert=ssl.get_server_certificate(('www.google.com', 443))
# OpenSSL
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
x509.get_subject().get_components()
Run Code Online (Sandbox Code Playgroud)

但我得到错误说:

Traceback (most recent call last):
  File "C:\Users\e\Desktop\Python\ssl\test.py", line 6, in <module>
    x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
NameError: name 'OpenSSL' is not defined
Run Code Online (Sandbox Code Playgroud)

我知道我必须导入OpenSSL.但是我不知道怎么做?从哪里获得OpenSSL?我从https://pypi.python.org/pypi/pyOpenSSL下载了一个名为pyOpenSSL的模块, 其中包含两个文件夹:pyOpenSSL-0.15.1.dist-info和OpenSSL.当我尝试添加导入OpenSSL或导入pyOpenSSL时,我收到错误.你能解释清楚,如何导入这些库或模块?他们应该放在哪里?如果不在我的代码文件的同一目录中?如何在导入语法中编写路径?请帮忙.

编辑: 当试图添加from OpenSSL import SSL代码时,我得到:

    C:\Users\e\Desktop\Python\ssl>test.py
Traceback (most recent call last):
  File "C:\Users\e\Desktop\Python\ssl\test.py", line 2, in <module>
    from OpenSSL import SSL
  File "C:\Users\e\Desktop\Python\ssl\OpenSSL\__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "C:\Users\e\Desktop\Python\ssl\OpenSSL\rand.py", line 9, in <module>
    from six import integer_types as _integer_types
ImportError: No module named six
Run Code Online (Sandbox Code Playgroud)

hd1*_*hd1 50

测试:

from OpenSSL import SSL
Run Code Online (Sandbox Code Playgroud)

对编辑的响应:pip install pyopenssl应该已经安装了六个.如果您尝试自己安装,我不会这样做,但您可以手动安装依赖项pip install six cryptography,然后您的导入应该可以正常工作.如果没有,请发表评论,我会做进一步的调查.

回复评论:有关于在Windows安装pip的说明.