Comment résoudre ReadTimeoutError: HTTPSConnectionPool (host = 'pypi.python.org', port = 443) avec pip?

91

J'ai récemment besoin d'installer des packages

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

J'ai également essayé par écrit sudoavant eux, mais tout cela a généré les erreurs suivantes dans les lignes rouges:

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
la source
2
À moins qu'il n'y ait réellement une erreur appelée Erreurs d'écran rouge, ne mettez pas cela comme titre
abccd
4
Je pense que c'est un problème de réseau, essayez de ping pypi.python.orgvoir si cela fonctionne. Il peut être résolu avec quelque chose d'aussi simple que de redémarrer votre routeur ou de vous reconnecter à votre Internet ou même simplement de réessayer après un certain temps. veuillez suivre Comment demander avant de publier ici.
Krishna Chaitanya Kornepati
Cela peut également se produire s'il doit passer par proxy. Faites: pip install future --proxy = <votre site proxy>
user3885927
Je le résous en arrêtant le proxy openconnect: | :))
Mojtaba Arvin

Réponses:

175

Yaayy! J'ai trouvé la réponse. Utilisez simplement le paramètre --default-timeout = 100 avec l'installation. par exemple

sudo pip install --default-timeout=100 future
Ateeb
la source
16
Alternativement, j'ai utilisé export PIP_DEFAULT_TIMEOUT=100puisque j'avais la pipcommande dans un Dockerfile partagé et c'était une exigence temporaire pour moi. Mais ça marche, merci!
Kerem
8
Merci, cela me sauve dans des conditions Internet lentes. Je suppose que 100 est le nombre de secondes pendant lesquelles pip attendra la reconnexion après avoir perdu la connexion?
LittleZero
1
Puis-je rendre le paramètre de délai d'attente permanent?
Timo
1
Je ne trouve pas le paramètre avec pip helpou pip install help. Il y a howerver socket timeout. Je me demande quelle est la valeur par défaut?
Timo
1
Je ne trouve pas le paramètre avec pip helpou pip install help. Il y a howerver socket timeout. Je me demande quelle est la valeur par défaut?
Timo
8

sudo pip install --default-timeout = 100 futurs

Ou bien

export PIP_DEFAULT_TIMEOUT = 100 a fonctionné pour moi sur mac osx

Jagdish
la source
0

Il existe deux façons de régler ce problème.

Première méthode:

sudo pip install --default-timeout = 100 futurs

Deuxième: pip install --default-timeout = 100 future.

Remarque: si vous n'êtes pas le superutilisateur de votre machine, la commande sudo pip ne fonctionnera pas. (C'est arrivé avec moi.)

ARB
la source
1
Notez que ce n'est pas une bonne idée d'utiliser «sudo» avec pip. Utilisez plutôt l'indicateur '--user'.
Rencontrez Sinojia le