<p>requests.exceptions.InvalidSchema:缺少 SOCKS 支持的依赖项。</p>

创建于 2016-08-17  ·  7评论  ·  资料来源: psf/requests

你好名单
我遇到了缺少 SOCKS 支持的依赖项的问题。 使用请求模块 2.11 版,

但是对于 2.10 版的请求模块,请求模块可以正常工作

我的环境:
声明 -x VIRTUAL_ENV="/home/hadn/python3"
声明 -x VTE_VERSION="3803"
声明 -x WINDOWID="33554439"
声明 -x WINDOWPATH="1"
声明 -x XAUTHORITY="/run/gdm/auth-for-hadn-0O4FTR/database"
声明 -x XDG_CURRENT_DESKTOP="GNOME- Classic:GNOME "
声明 -x XDG_MENU_PREFIX="gnome-"
声明 -x XDG_RUNTIME_DIR="/run/user/1000"
声明 -x XDG_SEAT="seat0"
声明 -x XDG_SESSION_DESKTOP="gnome-classic"
声明 -x XDG_SESSION_ID="2"
声明 -x XDG_VTNR="1"
声明 -x XMODIFIERS="@im=ibus"
声明 -x _system_arch="x86_64"
声明 -x _system_name="CentOS"
声明 -x _system_type="Linux"
声明 -x _system_version="7"
声明 -x all_proxy=" socks://proxy.hcm.fpt.vn :80/"
声明 -x ftp_proxy=" http://proxy.hcm.fpt.vn:80/ "
声明 -x http_proxy=" http://proxy.hcm.fpt.vn:80/ "
声明 -x https_proxy=" http://proxy.hcm.fpt.vn :80/"

(python3)[ had@rad-hadn4 ~]$ /home/hadn/Laravel/learning_bootstrap_v4/film/film_le.sh
回溯(最近一次调用最后一次):
文件“/home/hadn/Laravel/learning_bootstrap_v4/film/film_le_crawler_page_1.py”,第24行,在
html_content = session.get(url)
文件“/home/hadn/python3/lib/python3.4/site-packages/requests/sessions.py”,第 483 行,在 get
返回 self.request('GET', url, *_kwargs)
文件“/home/hadn/python3/lib/python3.4/site-packages/requests/sessions.py”,第 471 行,请求
resp = self.send(prep, *_send_kwargs)
文件“/home/hadn/python3/lib/python3.4/site-packages/requests/sessions.py”,第581行,发送
r =adapter.send(request, *_kwargs)
文件“/home/hadn/python3/lib/python3.4/site-packages/requests/adapters.py”,第384行,发送
conn = self.get_connection(request.url, proxies)
文件“/home/hadn/python3/lib/python3.4/site-packages/requests/adapters.py”,第 287 行,在 get_connection
proxy_manager = self.proxy_manager_for(proxy)
文件“/home/hadn/python3/lib/python3.4/site-packages/requests/adapters.py”,第 183 行,在 proxy_manager_for
*_proxy_kwargs
文件“/home/hadn/python3/lib/python3.4/site-packages/requests/adapters.py”,第 43 行,在 SOCKSProxyManager 中
raise InvalidSchema("缺少 SOCKS 支持的依赖项。")
requests.exceptions.InvalidSchema:缺少 SOCKS 支持的依赖项。

最有用的评论

$ pip install requests[socks]

所有7条评论

$ pip install requests[socks]

这里的具体问题是在 2.11 中我们开始支持all_proxy ,您已将其设置为 SOCKS 代理。 这意味着我们会尝试使用 SOCKS 代理并失败。

@Lukasa @kennethreitz我可以选择禁用 SOCKS 代理

@alochym01如果您不想要它,为什么要在您的环境中设置它? 无论如何,如果您使用带有trust_env=False的会话,该问题将不再发生,尽管您会丢失您的环境 HTTP 代理。

但是,这里似乎确实存在一个错误:与特定于方案的代理相比,请求会更喜欢all_proxy 。 我认为这是个坏主意。 @sigmavirus24 ,我们应该重新订购吗?

@Lukasa所以据我所知,如果未设置http(s)_proxy应该使用all_proxy 。 在更一般的意义上,如果<protocol>_proxy未设置,则应该使用它。 所以基于这种理解(并假设我是正确的)是的,我们绝对应该重新订购。 让我们为此提交一个新的错误。

@alochym01另一种选择似乎是使用proxies={'all': None}

@Lukasa proxies={'all': None} 不起作用,因为网络应该通过代理,所以我看到你确实打开了新问题:)
让我们关注新问题:+1:

此页面是否有帮助?
0 / 5 - 0 等级