Bagaimana mengatasi ReadTimeoutError: HTTPSConnectionPool (host = 'pypi.python.org', port = 443) dengan pip?

91

Saya baru-baru ini perlu menginstal beberapa paket

pip install future
pip install scikit-learn
pip install numpy
pip install scipy

Saya juga mencoba menulis sudosebelum mereka tetapi semua itu muncul dengan kesalahan berikut di garis merah:

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 290, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1198, in prepare_files
    do_download,
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1376, in unpack_url
    self.session,
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 572, in unpack_http_url
    download_hash = _download_url(resp, link, temp_location)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 433, in _download_url
    for chunk in resp_read(4096):
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 421, in resp_read
    chunk_size, decode_content=False):
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 256, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 201, in read
    raise ReadTimeoutError(self._pool, None, 'Read timed out.')
ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.

Storing debug log for failure in /root/.pip/pip.log'
Ateeb
sumber
2
Kecuali jika sebenarnya ada kesalahan yang disebut Kesalahan Layar Merah, jangan sebut itu sebagai judulnya
abccd
4
Saya pikir itu masalah jaringan coba ping pypi.python.orglihat apakah berhasil. Ini dapat diselesaikan dengan sesuatu yang sederhana seperti memulai ulang router Anda atau menghubungkan kembali ke internet Anda atau bahkan hanya mencoba lagi setelah beberapa saat. silakan ikuti Cara bertanya sebelum memposting di sini.
Krishna Chaitanya Kornepati
Ini juga bisa terjadi jika harus melewati proxy. Lakukan: pip install future --proxy = <situs proxy Anda>
user3885927
Saya menyelesaikannya dengan menghentikan proksi openconnect: | :))
Mojtaba Arvin

Jawaban:

175

Yaayy! Saya sudah menemukan jawabannya. Cukup gunakan parameter --default-timeout = 100 dengan penginstalan. misalnya

sudo pip install --default-timeout=100 future
Ateeb
sumber
16
Sebagai alternatif, saya menggunakan export PIP_DEFAULT_TIMEOUT=100karena saya memiliki pipperintah di Dockerfile bersama dan itu adalah persyaratan sementara bagi saya. Tapi berhasil, terima kasih!
Kerem
8
Terima kasih, Ini menyelamatkan saya dalam kondisi internet yang lambat. Saya kira 100 adalah jumlah detik pip akan menunggu untuk menghubungkan kembali setelah kehilangan koneksi?
LittleZero
1
Bisakah saya membuat permament pengaturan waktu tunggu?
Timo
1
Saya tidak dapat menemukan pengaturan dengan pip helpatau pip install help. Ada yang lebih keras socket timeout. Saya ingin tahu apa nilai defaultnya?
Timo
1
Saya tidak dapat menemukan pengaturan dengan pip helpatau pip install help. Ada yang lebih keras socket timeout. Saya ingin tahu apa nilai defaultnya?
Timo
8

sudo pip install --default-timeout = 100 future

atau sebagai alternatif

ekspor PIP_DEFAULT_TIMEOUT = 100 bekerja untuk saya di mac osx

Jagdish
sumber
0

Ada dua cara untuk menangani masalah ini.

Metode pertama:

sudo pip install --default-timeout = 100 future

Yang kedua: pip install --default-timeout = 100 future.

Catatan: Jika Anda bukan pengguna super mesin Anda, perintah sudo pip, tidak akan berfungsi. (Ini terjadi dengan saya.)

ARB
sumber
1
Ingatlah bahwa bukanlah ide yang baik untuk menggunakan 'sudo' dengan pip. Gunakan tanda '--user' sebagai gantinya.
Temui Sinojia