質問: Centos7でpythonを実行すると下記の warning が表示されます。 pythonのアップデート必要というメッセージが表示されます。 2.7.5アップデート済みだと思います。 もし分かる方いれれば、教えていただけるとありがたいです。 よろしくお願いします。 ``` [root@localhost デスクトップ]# python cuatro.py /usr/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:334: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings SNIMissingWarning /usr/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:132:InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecurePlatformWarning [root@localhost デスクトップ]# python Python 2.7.5 (default, Jun 17 2014, 18:11:42) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2 Type "help", "copyright", "credits" or "license" for more information. ``` ![pythonのエラーについて](https://i.stack.imgur.com/ko07P.png)
回答: `cuatro.py` でおそらく `requests` モジュールを使っているのだと思いますが、このメッセージはrequestsが利用しているurllib3が出しています。 urllib3はHTTPS通信でPythonのSSLモジュールを使用していますが、Python-2.7.5に組み込まれているSSLモジュールは古いので、この `InsecurePlatformWarning` 警告が表示されています。 警告で提示されているURLの先を読むと、2つのことが書かれています 1. Python-2.7.9 以降を使おう 2. pyOpenSSLをインストールしよう: `pip install urllib3[secure]` このどちらか、または両方を行う必要があります。 2については、 `cuatro.py` が直接依存しているのがrequestsなので、 `pip install requests[security]` と書いてもOKです。 1については、CentOSで標準で提供されていないバージョンのPythonをインストールする方法を調べてみてください。EPELリポジトリやREMIリポジトリを使う方法もありますし、Software Collectionsを使う方法もあります。他にも、自分でPythonをビルドする、Anacondaやpyenvを使う、など目的と状況に応じてやりかたは色々ありそうです(別の話題になるので詳細は割愛します)