Socks set_default_proxy 会在 Ubuntu 上引发错误,但不会在 OSX 或 Windows 上引发错误
Socks set_default_proxy throws an error on Ubuntu but not on OSX or Windows
这是导致错误的代码部分。它在 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 库中的错误吗?
看起来函数 socks.set_default_proxy(...)
最近被重命名了;该库的早期版本拼写时没有下划线,如 socks.setdefaultproxy(...)
。您的 Ubuntu 服务器上可能安装了这些先前版本之一。
您可以有时通过尝试函数名称的两种拼写来解决这个问题,例如:
try:
sdp = socks.set_default_proxy
except AttributeError:
sdp = socks.setdefaultproxy
sdp(socks.SOCKS5, "127.0.0.1", 4050)
强调有时;这本身可能还不够,因为 SocksiPy 的 API 看起来随着时间和一系列不同的维护者发生了重大变化。
资料来源:咨询 PySocks README, the socksipy-x README,以及之前的一对夫妇。
这是导致错误的代码部分。它在 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 库中的错误吗?
看起来函数 socks.set_default_proxy(...)
最近被重命名了;该库的早期版本拼写时没有下划线,如 socks.setdefaultproxy(...)
。您的 Ubuntu 服务器上可能安装了这些先前版本之一。
您可以有时通过尝试函数名称的两种拼写来解决这个问题,例如:
try:
sdp = socks.set_default_proxy
except AttributeError:
sdp = socks.setdefaultproxy
sdp(socks.SOCKS5, "127.0.0.1", 4050)
强调有时;这本身可能还不够,因为 SocksiPy 的 API 看起来随着时间和一系列不同的维护者发生了重大变化。
资料来源:咨询 PySocks README, the socksipy-x README,以及之前的一对夫妇。