Socks set_default_proxy在Ubuntu上抛出错误,但在OSX或Windows上不会抛出错误

2024-09-25 16:26:25 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是导致错误的代码部分。它在OSX和Windows上运行良好。在

def sslwrap(func):
    @wraps(func)
    def bar(*args, **kw):
        kw['ssl_version'] = ssl.PROTOCOL_TLSv1
        return func(*args, **kw)
    return bar
ssl.wrap_socket = sslwrap(ssl.wrap_socket)
if sys.platform == "darwin":
    requests.packages.urllib3.disable_warnings()
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 4050)
socket.socket = socks.socksocket

下面是我在我的Ubuntu服务器上得到的错误:

Traceback (most recent call last): File "new.py", line 42, in socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9050) AttributeError: 'module' object has no attribute 'set_default_proxy'

有什么想法吗?它很可能是sockspy库中的bug吗?在


Tags: defaultsslreturndef错误barargssocket
1条回答
网友
1楼 · 发布于 2024-09-25 16:26:25

{{cd2}以前的版本看起来没有下划线。很可能你的Ubuntu服务器上安装了这些早期版本之一。在

有时,您可以通过尝试函数名的两种拼写来解决这个问题,如:

try:
  sdp = socks.set_default_proxy
except AttributeError:
  sdp = socks.setdefaultproxy
sdp(socks.SOCKS5, "127.0.0.1", 4050)

有时要强调;这本身可能还不够,因为sockspy的API看起来随着时间和一系列不同的维护者而发生了很大的变化。在

资料来源:咨询PySocks READMEsocksipy-x README,以及前面的几个例子。在

相关问题 更多 >