1. ホーム
  2. パイソン

[解決済み】Requestsパッケージ使用時にSSL InsecurePlatformエラーが発生する。

2022-04-03 02:37:29

質問

Python 2.7.3とRequestsを使用しています。pipでRequestsをインストールしました。最新版だと思います。私はDebian Wheezyで動作しています。

過去に何度もRequestsを使っていて、この問題に直面したことはありませんでしたが、どうやら、httpsのリクエストをするときに Requests を取得します。 InsecurePlatform の例外が発生します。

エラーの内容は urllib3 しかし、私はそれをインストールしていません。エラーが解決されるかどうかを確認するためにインストールしましたが、解決されませんでした。

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3
/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not
available. This prevents urllib3 from configuring SSL appropriately and 
may cause certain SSL connections to fail. For more information, see 
https://urllib3.readthedocs.org/en/latest  
/security.html#insecureplatformwarning.

なぜこのようなことが起こるのか、何か心当たりはありますか?エラーメッセージに指定されているように、ドキュメントをチェックしましたが、ドキュメントには、urllib3をインポートして、警告を無効にするか、証明書を提供するように書かれています。

解決方法は?

を使用します。 セキュリティ という機能があります。

pip install requests[security] または pip install pyOpenSSL ndg-httpsclient pyasn1

どちらのコマンドも、以下の追加パッケージをインストールします。

  • pyOpenSSL
  • クリプトグラフィー
  • イドナ

には必要ありませんのでご注意ください。 python-2.7.9+ .

もし pip install に必要な開発パッケージがあるかどうかを確認してください。 libffi , libsslpython インストールされている ディストリビューションのパッケージマネージャを使用して :

  • デビアン / Ubuntu - python-dev libffi-dev libssl-dev のパッケージがあります。

  • フェドラ - openssl-devel python-devel libffi-devel のパッケージがあります。

上記のディストリビューションリストは不完全なものです。

ワークアラウンド ( TomDotTom さんの回答原文を見る ) :

必要な開発パッケージがインストールできない場合、その警告を無効化するオプションもあります。

import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()

もし pip の影響を受けます。 InsecurePlatformWarning で、PyPIから何もインストールできない場合、次のように修正することができます。 このステップバイステップガイド を使い、手動で追加のPythonパッケージをデプロイします。