Python开发中的小问题及解决方法

Python开发中的小问题及解决方法
青夢Python开发中的小问题及解决方法
Pycharm不以pytest方式运行
运行脚本的时候以pytest方式运行时,如果要换回普通模式
- 点击运行脚本时的配置旁边的展开
- 点击
Edit configurations
- 删除原有的pytest运行配置
- 新增Python运行配置
- 填写运行配置Name
- 配置python解释器路径
- 配置要运行的脚本路径
- 保存即可以普通模式运行
解决urllib.request
的HTTP请求在开启代理的情况下,访问502
问题背景:在开启Clash Verge系统代理,且是规则模式,已对访问域名及ip(这里是内网搭建的服务)尝试添加规则,会遇到错误
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
;但是关闭系统代理后,就能正常执行,目标的域名和ip也能ping的通。
ping的痛验证的是ICMP协议的连通性,并不代表HTTP请求会走同样的路径,系统代理主要影响的是HTTP/HTTPS流量。这个问题是由于urllib.request
默认从环境变量或Windows注册表中获取代理设置,这可能回导致请求被代理拦截或路由错误。
由于这里的服务属于内网服务,即使Clash规则设定该域名为直连,开启系统代理后,请求经过代理的服务器无法访问到内网的服务而导致问题的出现。
方法一:
运行脚本前为访问的域名或ip设置环境变量
1
2
3set NO_PROXY=<域名>,<内网服务ip>
例子:set NO_PROXY=030321.xyz,10.10.11.*Pycharm中编辑环境配置,在环境变量中添加
NO_PROXY
,值同上
方法二:
代码中添加
1
2
3
4
5
6
7
8
9import os
os.environ["no_proxy"] = "<域名>,<内网服务ip>"
# 或者
import urllib.request
opener = urllib.request.build_opener(urllib.request.ProxyHandler({})) # 传空字典关闭代理
urllib.request.install_opener(opener)
# 然后再调用 push_to_gateway,这时 urllib 会使用没有代理的新 opener。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果