You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让依赖requests的Python包Meteostat通过HTTP代理访问

解决Meteostat在办公代理环境下的URLError问题

问题原因

你手动定义的proxies字典只是局部变量,Meteostat内部发起的requests请求并不会自动使用这个配置,导致代理未生效,出现URLError: <urlopen error [Errno 2] No such file or directory>错误。

解决方法

方法一:给Meteostat配置自定义请求Session

通过创建带代理的requests Session,并让Meteostat的底层加载器使用这个Session,就能让所有内部请求走代理:

import requests
from datetime import datetime
import matplotlib.pyplot as plt
from meteostat import Monthly
from meteostat.core.loader import Loader

# 替换成你的办公代理地址
proxies = {
    'http': 'http://your-proxy:port',
    'https': 'http://your-proxy:port',
}

# 创建带代理的Session
session = requests.Session()
session.proxies.update(proxies)

# 让Meteostat使用这个Session
Loader.session = session

# 原示例代码
start = datetime(2000, 1, 1)
end = datetime(2018, 12, 31)

data = Monthly('10637', start, end)
data = data.fetch()

data.plot(y=['tavg', 'tmin', 'tmax'])
plt.show()

如果代理需要用户名密码认证,格式改为:http://username:password@your-proxy:port

方法二:设置系统环境变量(无需修改代码)

在运行脚本前,设置代理相关的环境变量,requests会自动读取这些配置:

  • Windows命令行:
set HTTP_PROXY=http://your-proxy:port
set HTTPS_PROXY=http://your-proxy:port
  • Linux/macOS终端:
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port

设置完成后直接运行你的Python脚本即可。

内容的提问来源于stack exchange,提问作者entropy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:24:26