Unverified 提交 067ad9a2 authored 作者: Glenn Jocher's avatar Glenn Jocher 提交者: GitHub

Improved `check_online()` robustness (#10000)

* Improved check_online() robustness YOLOv5-wide improvement, not just in check_requirements() Signed-off-by: 's avatarGlenn Jocher <glenn.jocher@ultralytics.com> * Update general.py Signed-off-by: 's avatarGlenn Jocher <glenn.jocher@ultralytics.com> Signed-off-by: 's avatarGlenn Jocher <glenn.jocher@ultralytics.com>
上级 c55e2cd7
...@@ -283,11 +283,16 @@ def file_size(path): ...@@ -283,11 +283,16 @@ def file_size(path):
def check_online(): def check_online():
# Check internet connectivity # Check internet connectivity
import socket import socket
try:
socket.create_connection(("1.1.1.1", 443), 5) # check host accessibility def run_once():
return True # Check once
except OSError: try:
return False socket.create_connection(("1.1.1.1", 443), 5) # check host accessibility
return True
except OSError:
return False
return run_once() or run_once() # check twice to increase robustness to intermittent connectivity issues
def git_describe(path=ROOT): # path must be a directory def git_describe(path=ROOT): # path must be a directory
...@@ -369,7 +374,7 @@ def check_requirements(requirements=ROOT / 'requirements.txt', exclude=(), insta ...@@ -369,7 +374,7 @@ def check_requirements(requirements=ROOT / 'requirements.txt', exclude=(), insta
if s and install and AUTOINSTALL: # check environment variable if s and install and AUTOINSTALL: # check environment variable
LOGGER.info(f"{prefix} YOLOv5 requirement{'s' * (n > 1)} {s}not found, attempting AutoUpdate...") LOGGER.info(f"{prefix} YOLOv5 requirement{'s' * (n > 1)} {s}not found, attempting AutoUpdate...")
try: try:
assert check_online() or check_online(), "AutoUpdate skipped (offline)" assert check_online(), "AutoUpdate skipped (offline)"
LOGGER.info(check_output(f'pip install {s} {cmds}', shell=True).decode()) LOGGER.info(check_output(f'pip install {s} {cmds}', shell=True).decode())
source = file if 'file' in locals() else requirements source = file if 'file' in locals() else requirements
s = f"{prefix} {n} package{'s' * (n > 1)} updated per {source}\n" \ s = f"{prefix} {n} package{'s' * (n > 1)} updated per {source}\n" \
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论