OpenWeatherMap API代理配置求助:办公环境下Python天气程序连接失败问题解决
解决Python requests代理连接问题
1. 是否需要在Python程序中配置代理?
是的,你需要配置——不过有两种便捷的方式可选:
方式一:代码中显式指定代理
直接在requests.get()里传入proxies参数,就像你参考的示例那样,注意给代理地址加上http://前缀(避免部分场景下的解析问题):
proxies = { "http": "http://12.34.56.78:1234", "https": "http://12.34.56.78:1234" } # 替换成你实际的请求代码 response = requests.get(your_api_url, params=your_params, proxies=proxies)
方式二:在PyCharm中设置环境变量(无需改代码)
你在终端设置的环境变量只对当前终端进程有效,PyCharm默认不会继承。你可以直接在PyCharm的运行配置里添加代理环境变量:
- 打开
Run > Edit Configurations - 找到你的天气程序配置
- 在
Environment Variables区域,点击+号添加两个变量:HTTP_PROXY=http://12.34.56.78:1234HTTPS_PROXY=http://12.34.56.78:1234
这样requests会自动读取这些环境变量,无需修改代码就能走代理。
2. 错误中的端口443和代理端口1234不匹配的原因
这是两个完全不同的端口,不用纠结“匹配”问题:
- 端口
443是OpenWeatherMap API服务器的HTTPS端口——你的程序本来要直接连接这个端口获取数据; - 端口
1234是公司代理服务器的端口——公司网络要求所有外部请求必须通过这个代理端口转发,而不是直接访问外部服务器的443端口。
错误信息的核心是“无法连接到代理”,只要你配置的代理地址和端口正确(你用pip能成功安装依赖,说明这个代理是有效的),就能解决问题。
额外排错提示
如果之后还是出现问题,可以检查:
- 代理地址是否包含用户名/密码(如果公司代理需要验证,格式为
http://username:password@12.34.56.78:1234); - 确认PyCharm的运行配置是否正确保存了环境变量;
- 测试代理是否能访问目标API:可以用
curl -x http://12.34.56.78:1234 https://api.openweathermap.org/data/2.5/weather?q=Frankfurt&units=metric&APPID=abc123在终端验证。
内容的提问来源于stack exchange,提问作者radi




