カールの再インストール
私はこの議論からすべての提案を試みましたが、誰も私のために働きませんでした。解決策として、curlとcurlibを再インストールしました。その後、環境内にSSLサポート付きのpycurlをインストールすることができました。
開始時:
'PycURL / 7.43.0 libcurl / 7.47.0 GnuTLS / 3.4.10 zlib / 1.2.8 libidn / 1.32 librtmp / 2.3'
パート1.pipを使用した再/インストール
最初に、以前の回答で提案されたように、pipを使用してvirtualenvからpycurlを削除しました。
pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl --global-option="--with-openssl"
ここでの考え方は、パッケージがキャッシュされ、opensslオプションを使用して再インストールすることです。
また、以下を使用してpycurlをpipで再コンパイルしようとしました。
pip install pycurl --compile pycurl --no-cache
..しかし、実行後に同じエラーが発生しました:
python
import pycurl
pycurl.version
ImportError:pycurl:libcurlリンク時sslバックエンド(gnutls)はコンパイル時sslバックエンド(openssl)とは異なります
パート2。tarからのインストール
以前の方法が機能しなかった後、tarからpycurlをインストールすることにしました:
curl -O https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz
sudo tar -xzvf pycurl-7.43.0.tar.gz
cd pycurl-7.43.0/
sudo python setup.py --with-ssl install
pycurlはグローバルにインストールされていますが、virtualenv内にはインストールされていません。また、SSLをサポートしてインストールされているかどうかも確認しませんでしたが、まだSSLがないと思います。
パート3。curlとcurllibの再インストール
最後に、グローバルcurlとlibcurlはgnutlsでコンパイルされているため、pycurlが環境に正常にインストールされないことを理解しました。
始める前に、以下で確認してください。
curl-config --configure
出力ラインの1つは
'--without-ssl' '-with-gnutls'
再コンパイルするには:
まずカールを取り除きます:
sudo apt-get purge curl
curlに必要なビルド依存関係をインストールします
sudo apt-get build-dep curl
最新の(2016年12月20日現在)libcurlを入手する
mkdir ~/curl
wget http://curl.haxx.se/download/curl-7.51.0.tar.bz2
tar -xvjf curl-7.51.0.tar.bz2
cd curl-7.51.0
ソースからアプリを構築するための通常の手順
./configure
./make
sudo make install
opensslが正しくインストールされている場合、configureはそれを自動的に検出します。出力は次のようになります。
curlバージョン:7.51.0
ホストセットアップ:x86_64-pc-linux-gnu
インストールプレフィックス:/ usr / local
コンパイラ:gcc
SSLサポート: 有効(OpenSSL) .. ..
経営幹部レベルのライブラリロケーションキャッシュ(「共有ライブラリキャッシュ」)の問題を解決します
sudo ldconfig
次に、環境内でpycurlを再インストールしてみます。
curl -O https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz
pip install pycurl-7.43.0.tar.gz --global-option="--with-openssl"
結果は次のようになります。
python
import pycurl
pycurl.version
'PycURL / 7.43.0 libcurl / 7.51.0 OpenSSL / 1.0.2g zlib / 1.2.8 librtmp / 2.3'