Toggle navigation
DevOps Knowledge
作成
作成
下書き一覧
ストック
一覧
複合検索
サインイン
更新履歴
incmplt
2020/06/30 10:49
現在との差分
過去のナレッジの内容
コンテンツ
Pythonを使用して pipからモジュールをインストールする時、次のようなエラーでインストールが失敗することがある。 ``` raise ReadTimeoutError(self._pool, None, 'Read timed out.') requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(Host='pypi.python.org', port=443): Read timed out. ``` このエラーは、Let's Encryptで証明書の取得や更新に使用する certbot-autoで virtualenv から pipをインストールするときにも発生する。 コンソールでインストール失敗の場合には、判りやすいですが Let's Encrypt の自動更新の処理で失敗している事に気がつかないと、いつのまにか証明書が無効になっていたという事故になる。 pip を更新することで問題が解決する場合がありますが、再発するようであれば以下の対策を実施する。 # pip ReadTimeoutErrorの対策 pip の ReadTimeoutError は、指定した時間内にモジュールを取得できなかった場合に発生する。 コマンドラインのインストールの場合には、次のようにしてタイムアウトを長くすることができる。 ``` sudo pip --default-timeout=1000 install [MODULE_NAME] ``` # certbot-autoでの対策:常にタイムアウトを長く certbot-auto など、cronで自動処理する場合には certbot-auto を書き換えるのではなく、実行するユーザーの .bashrc などで次のように環境変数を定義する。 ``` export PIP_DEFAULT_TIMEOUT=100 ``` 今回は PIP_DEFAULT_TIMEOUT で 100(秒)を設定した。 処理に失敗しないように確実にインストールしたい場合には、1000(秒)などもっと長いタイムアウトを指定することもできる。
現在のナレッジの内容
コンテンツ
Pythonを使用して pipからモジュールをインストールする時、次のようなエラーでインストールが失敗することがある。 ``` raise ReadTimeoutError(self._pool, None, 'Read timed out.') requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(Host='pypi.python.org', port=443): Read timed out. ``` このエラーは、Let's Encryptで証明書の取得や更新に使用する certbot-autoで virtualenv から pipをインストールするときにも発生する。 コンソールでインストール失敗の場合には、判りやすいですが Let's Encrypt の自動更新の処理で失敗している事に気がつかないと、いつのまにか証明書が無効になっていたという事故になる。 pip を更新することで問題が解決する場合がありますが、再発するようであれば以下の対策を実施する。 # pip ReadTimeoutErrorの対策 pip の ReadTimeoutError は、指定した時間内にモジュールを取得できなかった場合に発生する。 コマンドラインのインストールの場合には、次のようにしてタイムアウトを長くすることができる。 ``` sudo pip --default-timeout=1000 install [MODULE_NAME] ``` # certbot-autoでの対策:常にタイムアウトを長く certbot-auto など、cronで自動処理する場合には certbot-auto を書き換えるのではなく、実行するユーザーの .bashrc などで次のように環境変数を定義する。 ``` export PIP_DEFAULT_TIMEOUT=100 ``` 今回は PIP_DEFAULT_TIMEOUT で 100(秒)を設定した。 処理に失敗しないように確実にインストールしたい場合には、1000(秒)などもっと長いタイムアウトを指定することもできる。
戻る