如何在Python中为YOLOv8配置代理以下载远程图片
给YOLOv8添加代理下载远程图片的解决方案
下面提供两种实用方案,帮你实现通过代理下载远程图片并完成YOLOv8推理:
方案1:设置全局代理环境变量
这种方式最简单,通过设置系统环境变量,让所有基于urllib/requests的网络请求自动走代理,无需修改YOLOv8的核心调用逻辑:
import os from ultralytics import YOLO # 配置HTTP和HTTPS代理(根据你的代理地址修改) os.environ['http_proxy'] = 'http://proxy_address:port' os.environ['https_proxy'] = 'http://proxy_address:port' # 加载预训练YOLOv8n模型 model = YOLO('yolov8n.pt') # 远程图片URL source = 'https://ultralytics.com/images/bus.jpg' # 执行推理 results = model(source)
方案2:手动代理下载图片再传入YOLO
如果需要更灵活的控制(比如添加超时、重试逻辑),可以手动用代理下载图片,再将图片数据传给YOLO模型:
import requests from ultralytics import YOLO from io import BytesIO # 代理配置 proxy_dict = { "http": "http://proxy_address:port", "https": "http://proxy_address:port" } # 带代理的图片下载函数 def download_image(url, proxies): # 可根据需求添加timeout、verify等参数 resp = requests.get(url, proxies=proxies) resp.raise_for_status() # 捕获下载错误 return BytesIO(resp.content) # 加载模型 model = YOLO('yolov8n.pt') # 远程图片地址 source = 'https://ultralytics.com/images/bus.jpg' # 下载图片 image_buffer = download_image(source, proxy_dict) # 执行推理 results = model(image_buffer)
注意事项
- 确保代理地址和端口正确,且代理服务器允许访问目标图片的URL
- 若目标是HTTPS链接,必须同时配置
https_proxy,否则请求会失败 - 可先单独用
requests.get(source, proxies=proxy_dict)测试代理是否能正常下载图片
内容的提问来源于stack exchange,提问作者Jenny
相关产品推荐
相关产品推荐

