1. ホーム
  2. python

[解決済み] OpenSSL使用時のSSLバックエンドエラー

2023-04-05 07:45:08

質問

pipを使ってpycurlを仮想環境にインストールしようとしたところ、次のようなエラーが発生しました。

ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other)

あるドキュメントによると "これを修正するには、setup.pyにどのSSLバックエンドが使用されているかを教える必要があります"。 (ソース) が、私はpipを使ってpycurlをインストールしたので、これをどのように行うかよくわかりません。

pipでpycurlをインストールする際に、SSLバックエンドを指定するにはどうすればよいですか?

ありがとうございます。

どのように解決するのですか?

ほとんどの人のために

彼らの INSTALLATION ファイルを読んだ後、私は環境変数を設定することで問題を解決し、再インストールを行うことができました。

# remove existing `pycurl` installation 
pip uninstall pycurl

# export variable with your link-time ssl backend (which is openssl above)
export PYCURL_SSL_LIBRARY=openssl

# then, re-install `pycurl` with **no cache**
pip install pycurl --no-cache-dir

他の解決策もあるかもしれませんが、これは私の場合 virtualenvpip のインストールが必要です。

人によっては、別のエラー メッセージで文句を言う nss ではなく openssl

<ブロッククオート

ImportError: pycurl: libcurl link-time ssl backend (nss)

(重要な部分は nss である)ので、このエラーメッセージのために何か別のことをする必要があります。

pip uninstall pycurl
pip install --no-cache-dir --compile --compile-options="--with-nss" pycurl