web-dev-qa-db-fra.com

pip échoue avec ReadTimeoutError

J'essaie d'installer jupyter notebook en utilisant pip, alors j'ai d'abord installé pip3:

Sudo apt-get install --no-install-recommends python3-pip

Puis j'ai couru:

Sudo pip3 install jupyter

Lors du téléchargement du package notebook il attend quelques secondes, il échoue avec beaucoup d’erreurs, dont la fin ressemble à ceci:

File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/response.py", line 231, in _error_catcher
raise ReadTimeoutError(self._pool, None, 'Read timed out.')
requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(Host='pypi.python.org', port=443): Read timed out.

Ma version Ubuntu est la suivante: 16.04 (Xenial) et ma connexion Internet est assez lente.

4
Ravexina

La taille du paquet notebook est d'environ 6.9 MB et si vous utilisez une connexion Internet à faible vitesse, il y a de fortes chances que l'installation échoue à cause du délai d'attente.

J'ai corrigé le problème en mettant à jour le pip3, mais je vais aussi suggérer un autre moyen. S'il vous est impossible de mettre à jour le pip3, utilisez celui-ci, cela ferait aussi le travail.

Vous pouvez utiliser le commutateur --default-timeout pour résoudre ce problème, par exemple:

Sudo pip --default-timeout=1000 install jupyter

Il devrait ignorer le délai d'attente et l'installation se fera avec succès.


L'autre chose qui a fonctionné pour moi a été la mise à jour de pip3, celle des référentiels Ubuntu est assez ancienne: 8.1.1 et la dernière version à la date de rédaction de ce guide est: 9.0.1. Je suggère cette méthode simplement parce que vous n'avez pas à exécuter pip3 avec --default-timeout chaque fois que vous essayez d'installer un nouveau paquet, et vous pouvez bien sûr utiliser un alias aussi;) tout ce qui vous convient.

En passant, je ne suis pas fan de l'installation de python packages en tant que root. Je suggère donc d'utiliser le commutateur --user pour l'installer localement, mais si vous essayez de rendre ce système disponible pour tous les paquets, alors aller avec Sudo.

pip3 install --upgrade pip --user

Et si vous obtenez la même erreur, maintenant que vous savez comment y remédier, utilisez simplement le commutateur --default-timeout pour mettre à niveau pip.

Maintenant cela devrait fonctionner sans erreur:

pip3 install jupyter --user
4
Ravexina