備忘録
備忘録
学びと解説
学びと解説
Python
Python
Linux
Linux

記事内に商品プロモーションを含む場合があります。

pip installでタイムアウトが発生したときの解決策5選

はじめに

Pythonでライブラリをインストールする際に、pip installコマンドを使うが、「pip subprocess to install build dependencies did not run successfully.」「Read timed out」などのエラーが発生することがある。

File "C:\Users\user\.pyenv\pyenv-win\versions\3.12.7\Lib\contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "C:\Users\user\.pyenv\pyenv-win\versions\3.12.7\Lib\site-packages\pip\_vendor\urllib3\response.py", line 443, in _error_catcher
raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 2
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

このエラーは、依存関係のダウンロードが遅延していたり、インターネット接続が不安定だったりする場合に起きる。
この問題をスムーズに解決し、Pythonライブラリを問題なくインストールするための5つの具体的な方法を紹介する。

1. pip installタイムアウト時間を延長する

タイムアウトエラーが頻発する場合、pipコマンドでタイムアウト時間を延ばすことで改善が期待できる。
以下は600秒(10分)にタイムアウトを設定したサンプルコードである。

pip install ライブラリ名 --timeout=600

このコマンドを使うことで、遅い接続環境や一時的なダウンロード遅延が発生している場合でも、エラーが発生しにくくなる。

2. 依存関係のインストールを分ける

一部のPythonライブラリは、依存関係が多いため、まとめてインストールする際にタイムアウトが発生することがある。
この場合、主要な依存関係を先にインストールし、後から目的のライブラリを追加インストールする方法が効果的だ。
たとえば、pandasをインストールする際に必要なnumpyを事前にインストールしておくと、インストールがスムーズに進む場合がある。

pip install numpy
pip install pandas

依存ライブラリをあらかじめインストールすることで、必要なダウンロード量が減り、タイムアウトを回避できる。

3. キャッシュを無効にしてインストールする

pipはキャッシュ機能によりダウンロードしたファイルを再利用するが、これが原因でエラーが発生することがある。
この場合、キャッシュを無効化してクリーンな環境でインストールすることが解決策となる。

pip install ライブラリ名 --no-cache-dir

キャッシュを無効にすることで、特定のダウンロードエラーを回避し、より安定したインストールが期待できる。

4. ミラーサーバーを利用してpip installする

pipのデフォルトサーバーへの接続が不安定な場合、他のミラーサーバーを利用することで問題が解決することがある。 たとえば、 Microsoftが提供しているミラーサーバーは日本からもアクセスしやすく、多くのユーザーに利用されている。以下のサンプルコードで設定できる。

  pip install ライブラリ名 --index-url https://pkgs.dev.azure.com

このように、ほかのミラーサーバーを使うことで、タイムアウトや接続の問題を避けることができる。

5. ネットワーク環境の確認・改善

タイムアウトが頻発する場合、インターネット接続の安定性を見直すことが重要である。
Wi-Fiではなく、有線接続に切り替えるか、別のネットワーク環境に切り替えて試すことで、インストールが正常に進む場合がある。 接続環境に依存するエラーは意外と多いため、ネットワークを安定させることで解決できることが多い。

まとめ

このように、pip installタイムアウトエラーは対処方法を知っておくことでスムーズに解決できる。
上記5つの方法を試すことで、pip installコマンドでのタイムアウト問題を効果的に解決できる可能性が高まる。
エラーが発生する原因は、インターネット接続の問題や依存関係の多さなどさまざまだが、複数の方法を組み合わせて対応することで、Pythonライブラリのインストールがスムーズになるだろう。

関連記事