python socks代理_如何让任意python程序使用socks代理

python socks代理_如何让任意python程序使用socks代理问题描述在尝试学习 Flutter 项目中的 engine 部分的源码的时候 需要先进行 gclientsync 操作来同步代码 而由于某些不可说的原因 会存在网络无法访问的问题 通常来讲我们可以通过设置系统代理的方式来解决 然而 gclient 并不会使用 macOS 的系统代理设置 所以需要从 gclient 下手 由于 gclient 是由 python 实现的 所以我们可以使用下面提到的这一个 trick 另外这个技巧可

问题描述

在尝试学习Flutter项目中的engine部分的源码的时候,需要先进行gclient sync操作来同步代码,而由于某些不可说的原因,会存在网络无法访问的问题,通常来讲我们可以通过设置系统代理的方式来解决,然而gclient并不会使用macOS的系统代理设置,所以需要从gclient下手,由于gclient是由python实现的,所以我们可以使用下面提到的这一个trick。

另外这个技巧可以延伸到任意其他语言中,例如在go get …操作中也遇到网络问题的话。

用词说明

目标程序 : 我们需要使用代理的应用程序

思路

修改urllib.py或者socket.py文件,这里可能需要注意下目标程序的具体实现是使用urllib还是socket,对于使用代理有基本的认识的可以很容易理解这一点,另外需要注意的一点是,如果修改下面提到的文件的话,会对系统中任何使用到该python运行时的其他程序产生影响,当然这个问题可以通过安装多个python运行时来规避,使用pyenv或者类似的工具实现起来很方便。

使用PySocks,可以通过pip install –user PySocks安装PySocks,当然这里也可以使用其他的package或者自己实现等等

然后如下修改,记住在修改之前备份要修改的文件,这是一个好习惯

如果修改urllib.py的话

import socks

import socket

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, “127.0.0.1”, 1080)

socket.socket = socks.socksocket

如果修改socket.py的话

socket = SocketType = _socketobject # 在socket.py找到这一行

# 在下面添加下面的代码

import socks

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, “127.0.0.1”, 1080)

socket = socks.socksocket

代理的IP地址和端口号可以修改成自己的设置

注意使用的python版本,不要弄错了上述文件的位置

参考(Reference)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224960.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午10:44
下一篇 2026年3月17日 上午10:45


相关推荐

  • AP模式和Router模式区别是什么

    AP模式和Router模式区别是什么AP模式和Router模式有什么区别呢?在TP-Link、水星(Mercury)、迅捷(Fast)等品牌的迷你无线路由器上,有AP模式、Router模式、中继和桥接等几个上网模式,本文重点详细介绍AP模式与Router模式的区别。AP(接入点)模式在AP模式下,需要把迷你无线路由器接入到已经可以上网的路由器或者交换机上面,然后迷你无线路由器可以提供无线WiFi,一般的迷你无线路由器出厂

    2025年8月2日
    4
  • Spring 核心控制器DispatcherServlet(三)

    Spring 核心控制器DispatcherServlet(三)

    2021年8月25日
    73
  • 各大OJ刷题平台汇总

    前言想成为一名高级工程师,算法还是要有的,至少在入门编程和进入公司之前都是必备的。刷题也可以很好的锻炼动手能力和逻辑思维,今天就给大家介绍一些知名的在线刷题平台,都是干货哦!力扣(leetcode)江湖人尽皆知的站点,全球知名的编程平台!总部在美国旧金山的硅谷,创办与2011年,2018年进入中国,并推出付费服务,19年推出力扣App。力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长(度说)。特点:支持c++,c,java,python,Rust,kot

    2022年4月4日
    1.0K
  • 关于权限表的基本设计[通俗易懂]

    关于权限表的基本设计[通俗易懂]对于一个系统,必须严格的控制权限,权限表的设计是基本的。基本的权限表有五个,即用户表,角色表,权限表,用户角色表,角色权限表。下面介绍下基本字段用户表  useruser_iduser_namepassword角色表  role role_idrole_name权限表 permissionpermission_idpermission用户角色表 

    2026年4月15日
    4
  • pycharm双击打不开,没有反应,下列方法亲测有用!

    pycharm双击打不开,没有反应,下列方法亲测有用!关于这个问题,刚好我朋友安装的pycharm出现了同样地问题,激活成功教程安装一段时间后就突然打不开了,网上有许多的解决办法,我都试了一遍还是无果,后来自己发现了问题所在,首先给大家科普一下网上的方法,再放上我的,请大家耐心读完。亲测有效!!!第一种:1.打开C:\Windows\System32;以管理员身份运行cmd.exe;2.在打开的cmd窗口中,输入netshwinsockreset,按回车键;3.重启电脑;4.重启后,双击pycharm图标就能打开了!第二种:在Pycha

    2022年8月25日
    9
  • 【技术】正則表達式—匹配电话号码,网址链接,Email地址

    【技术】正則表達式—匹配电话号码,网址链接,Email地址

    2022年3月6日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号