web-dev-qa-db-ja.com

OpenSSLをpythonにインポートする方法

私はこの簡単なコードを実行して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()

しかし、次のようなエラーが表示されます。

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

OpenSSLをインポートする必要があることを認識しています。しかしどうしたら良いかわからない? OpenSSLはどこから入手できますか? pyOpenSSLというモジュールを https://pypi.python.org/pypi/pyOpenSSL からダウンロードしました。これには、pyOpenSSL-0.15.1.dist-infoとOpenSSLの2つのフォルダーが含まれています。インポートOpenSSLまたはインポートpyOpenSSLを追加しようとすると、エラーが発生します。これらのライブラリまたはモジュールをインポートする方法を明確に説明していただけますか?それらはどこに配置する必要がありますか?コードファイルの同じディレクトリにない場合インポート構文にパスを書く方法は??助けてください。

EDIT:コードに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
25
user2192774

tests から:

from OpenSSL import SSL

編集への応答:pip install pyopensslは6つインストールされているはずです。自分でインストールしようとしている場合、私はこれを行いませんが、pip install six cryptographyを使用して依存関係を手動でインストールでき、インポートは正常に機能するはずです。そうでない場合は、コメントを残し、さらに調査を行います。

コメントへの応答: windowsへのpipのインストール に関する指示があります。

48
hd1