Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pip can't use socks5h proxy #4856

Open
CommunicationAnimale opened this issue Nov 11, 2017 · 1 comment
Open

Pip can't use socks5h proxy #4856

CommunicationAnimale opened this issue Nov 11, 2017 · 1 comment
Labels
C: proxy Dealing with proxies and networking type: feature request Request for a new feature

Comments

@CommunicationAnimale
Copy link

  • Pip version: 9.0.1
  • Python version: 3.6
  • Operating system: Fedora 26

Description:

When setting the $ALL_PROXY environment variable to (e.g) "socks5h://10.99.0.1:1080" (note the 'h'), pip install commands fail with 'ValueError: Unable to determine SOCKS version from socks5h://10.99.0.1:1080'.

'socks5h://' is common protocol which mandates that the SOCKS server resolves the hostnames and it has been recognized by urllib3 since version 1.20 (2017-01-19) :

What I've run:

$ python3 -m pip install test
Collecting test
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python3.6/site-packages/pip/commands/install.py", line 357, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python3.6/site-packages/pip/wheel.py", line 753, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 554, in _prepare_file
    require_hashes
  File "/usr/lib/python3.6/site-packages/pip/req/req_install.py", line 278, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python3.6/site-packages/pip/index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python3.6/site-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/lib/python3.6/site-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/usr/lib/python3.6/site-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/lib/python3.6/site-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/usr/lib/python3.6/site-packages/pip/_vendor/requests/sessions.py", line 488, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python3.6/site-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/pip/_vendor/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3.6/site-packages/pip/_vendor/requests/sessions.py", line 596, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3.6/site-packages/pip/_vendor/cachecontrol/adapter.py", line 47, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/lib/python3.6/site-packages/pip/_vendor/requests/adapters.py", line 390, in send
    conn = self.get_connection(request.url, proxies)
  File "/usr/lib/python3.6/site-packages/pip/_vendor/requests/adapters.py", line 290, in get_connection
    proxy_manager = self.proxy_manager_for(proxy)
  File "/usr/lib/python3.6/site-packages/pip/_vendor/requests/adapters.py", line 184, in proxy_manager_for
    **proxy_kwargs
  File "/usr/lib/python3.6/site-packages/pip/_vendor/requests/packages/urllib3/contrib/socks.py", line 154, in __init__
    "Unable to determine SOCKS version from %s" % proxy_url
ValueError: Unable to determine SOCKS version from socks5h://10.99.0.1:1080
@pradyunsg pradyunsg added type: feature request Request for a new feature C: proxy Dealing with proxies and networking labels Nov 12, 2017
@iamthad
Copy link

iamthad commented Jul 1, 2019

The upstream issue is now fixed and socks5h support works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: proxy Dealing with proxies and networking type: feature request Request for a new feature
Projects
None yet
Development

No branches or pull requests

3 participants