ssl
モジュールは、操作SYTEM(OS)ソケット(アクセスするためのTLS / SSLラッパーでのLib / ssl.py)を。そのため、ssl
モジュールが利用できない場合、OS OpenSSLライブラリがインストールされていないか、Pythonのインストール時にそれらのライブラリが見つからなかった可能性があります。後者の場合を想定してください(別名:すでにOpenSSLがインストールされていますが、Pythonのインストール時に正しくリンクされていません)。
また、ソースからインストールすることも想定しています。バイナリ(つまり、ウィンドウ.exeファイル)、またはパッケージ(Mac .dmg、またはUbuntu apt)からインストールする場合、インストールプロセスで実行できることはあまりありません。
Pythonのインストールを構成するステップ中に、OS OpenSSLがリンクに使用される場所を指定する必要があります。
# python 3.8 beta
./configure --with-openssl="your_OpenSSL root"
インストールされているOpenSSLディレクトリはどこにありますか?
# ubuntu
locate ssl.h | grep '/openssl/ssl.h'
/home/user/.linuxbrew/Cellar/openssl/1.0.2r/include/openssl/ssl.h
/home/user/envs/py37/include/openssl/ssl.h
/home/user/miniconda3/envs/py38b3/include/openssl/ssl.h
/home/user/miniconda3/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.0.2s-h7b6447c_0/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1b-h7b6447c_1/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1c-h7b6447c_1/include/openssl/ssl.h
/usr/include/openssl/ssl.h
あなたのシステムは私のものとは違うかもしれませんが、ここに見られるように私は多くの異なるインストールされたopensslライブラリを持っています。この記事の執筆時点では、Python 3.8はopenssl 1.0.2または1.1を想定しています。
Pythonでは、OpenSSL 1.0.2または1.1互換のlibsslとX509_VERIFY_PARAM_set1_host()が必要です。
したがって、リンクに使用できるインストール済みのライブラリを確認する必要があります。たとえば、
/usr/bin/openssl version
OpenSSL 1.0.2g 1 Mar 2016
./configure --with-openssl="/usr"
make && make install
PythonとOSで機能するライブラリを見つけるために、いくつか試すか、新しくインストールする必要がある場合があります。
sudo apt-get install python3-pip
か?