Як вирішити ReadTimeoutError: HTTPSConnectionPool (host = 'pypi.python.org', port = 443) за допомогою pip?


91

Нещодавно мені потрібно встановити деякі пакети

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

Я також намагався писати sudoдо них, але все це привело до таких помилок у червоних рядках:

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'

2
Якщо насправді не існує помилки під назвою Помилки червоного екрану, не
позначайте

4
Я думаю, це проблема мережі, спробуйте ping pypi.python.orgподивитися, чи працює це. Це можна вирішити за допомогою чогось такого простого, як перезапуск маршрутизатора або повторне підключення до Інтернету, або навіть проста спроба через деякий час. будь ласка, дотримуйтесь Як запитати, перш ніж розміщувати тут.
Крішна Чайтанья Корнепаті

Це також може статися, якщо там він повинен пройти проксі-сервер. Виконайте: pip install future --proxy = <ваш проксі-сайт>
user3885927

Я вирішую це шляхом зупинки проксі-сервера openconnect: | :))
Мойтаба Арвін

Відповіді:


175

Яай! Я знайшов відповідь. Просто використовуйте параметр --default-timeout = 100 під час встановлення. напр

sudo pip install --default-timeout=100 future

16
Крім того, я використовував, export PIP_DEFAULT_TIMEOUT=100оскільки я мав pipкоманду у спільному файлі Docker, і це було тимчасовою вимогою для мене. Але це працює, дякую!
Керем

8
Дякую, це рятує мене в повільному стані Інтернету. Я думаю, 100 - це кількість секунд, коли піп буде чекати повторного підключення після втрати з’єднання?
LittleZero

1
Чи можу я зробити налаштування тайм-ауту постійним?
Тимо,

1
Я не можу знайти налаштування за допомогою pip helpабо pip install help. Існує howerver socket timeout. Цікаво, яке значення за замовчуванням?
Тімо

1
Я не можу знайти налаштування за допомогою pip helpабо pip install help. Існує howerver socket timeout. Цікаво, яке значення за замовчуванням?
Тімо

8

sudo pip install --default-timeout = 100 майбутнє

або як варіант

export PIP_DEFAULT_TIMEOUT = 100 працював у мене на mac osx


0

Це два шляхи вирішення цього питання.

Перший метод:

sudo pip install --default-timeout = 100 майбутнє

Другий: pip install --default-timeout = 100 future.

Примітка: Якщо ви не суперкористувач вашої машини, команда sudo pip не буде працювати. (Це сталося зі мною.)


1
Зауважте, що використовувати «sudo» з pip не годиться. Натомість використовуйте прапор '--user'.
Зустріньте Сіноцзя
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.