自分の環境
- Fedora OS
- 自分には管理者権限がない
- venvで作成した仮想環境内において,pipを用いてライブラリをインストールしようとした際,下記のエラーが出た
発生した問題
SSL証明書の問題によりpipがHTTPSを通じてパッケージをダウンロードできない.
エラー内容
Could not fetch URL https://pypi.org/simple/setuptools/: There was
a problem confirming the ssl certificate:HTTPSConnectionPool(host='pypi.org', port=443):
Max retries exceeded with url: /simple/setuptools/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
解決方法
管理者権限がないため,OpenSSLをローカルユーザー環境にインストールし、PythonがSSLを使用できるように構成することでSSLエラーを回避する.
まず,OpenSSLのファイルをインストールしたい階層まで行きます.どこでも大丈夫です.
ステップ1
OpenSSLのソースコードをダウンロード
bash
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
最新版はこちら(https://openssl-library.org/source/ )からご確認ください.
ステップ2
ソースコードの解凍とディレクトリ移動
bash
tar -xf openssl-1.1.1.tar.gz
cd openssl-1.1.1
ステップ3
インストール先を指定してコンパイル
bash
./config --prefix=$HOME/openssl --openssldir=$HOME/openssl
make
make install
これで$HOME/openssl以下にOpenSSLがインストールされます.
ステップ4
PythonにSSLを認識させる
Pythonが新しいOpenSSLを認識するように環境変数を設定します.
bash
export LD_LIBRARY_PATH=$HOME/openssl/lib:$LD_LIBRARY_PATH
export PATH=$HOME/openssl/bin:$PATH
これで問題なく,pip install が使えるようになります.