¿Cómo resolver ReadTimeoutError: HTTPSConnectionPool (host = 'pypi.python.org', port = 443) con pip?

91

Recientemente necesito instalar algunos paquetes

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

También probé escribiendo sudoantes que ellos, pero todo resultó con los siguientes errores en líneas rojas:

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
fuente
2
A menos que haya un error llamado Errores de pantalla roja, no lo ponga como título
abccd
4
Creo que es un problema de red, intenta ping pypi.python.orgver si funciona. Se puede resolver con algo tan simple como reiniciar su enrutador o volver a conectarse a Internet o incluso simplemente volver a intentarlo después de algún tiempo. siga Cómo preguntar antes de publicar aquí.
Krishna Chaitanya Kornepati
Esto también podría suceder si tiene que pasar por alto el proxy. Hacer: pip install future --proxy = <su sitio proxy>
user3885927
Lo soluciono deteniendo el proxy openconnect: | :))
Mojtaba Arvin

Respuestas:

174

¡Yaayy! He encontrado la respuesta. Simplemente use el parámetro --default-timeout = 100 con la instalación. p.ej

sudo pip install --default-timeout=100 future
Ateeb
fuente
16
Alternativamente, lo usé export PIP_DEFAULT_TIMEOUT=100porque tenía el pipcomando en un Dockerfile compartido y era un requisito temporal para mí. ¡Pero funciona, gracias!
Kerem
8
Gracias, me salva en una condición de Internet lenta. Supongo que 100 es el número de segundos que pip esperará para volver a conectarse después de perder la conexión.
LittleZero
1
¿Puedo hacer la configuración del tiempo de espera permanente?
Timo
1
No puedo encontrar la configuración con pip helpo pip install help. Hay howerver socket timeout. Me pregunto cuál es el valor predeterminado.
Timo
1
No puedo encontrar la configuración con pip helpo pip install help. Hay howerver socket timeout. Me pregunto cuál es el valor predeterminado.
Timo
8

sudo pip install --default-timeout = 100 future

o alternativamente

exportar PIP_DEFAULT_TIMEOUT = 100 funcionó para mí en mac osx

Jagdish
fuente
0

Son dos formas de solucionar este problema.

Primer método:

sudo pip install --default-timeout = 100 future

Segundo: pip install --default-timeout = 100 future.

Nota: Si no es superusuario de su máquina, el comando sudo pip no funcionará. (Me pasó a mí).

ARB
fuente
1
Tenga en cuenta que no es una buena idea usar 'sudo' con pip. Utilice el indicador '--user' en su lugar.
Conoce a Sinojia el