pip, прокси-аутентификация и «Не поддерживаемая схема прокси»

Попытка установить pip на новую установку python. Я застрял с ошибками прокси. Похож на ошибку в get-pip или urllib3 ??

Вопрос в том, должен ли я испытывать боль при настройке CNTLM, как описано здесь, или есть ярлык?

В документации на get-pip.py используется параметр --proxy="[user:passwd@]proxy.server:port" для указания прокси-сервера и соответствующей проверки подлинности. Но похоже, что переход на все, что касается urllib3 который интерпретирует «myusr» как схему URL, из-за «:» я предполагаю (?).

 C:\ProgFiles\Python27>get-pip.py --proxy myusr:mypswd@111.222.333.444:80 Downloading/unpacking pip Cleaning up... Exception: Traceback (most recent call last): File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\basecommand.py", line 122, in main status = self.run(options, args) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\commands\install.py", line 278, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\req.py", line 1177, in prepare_files url = finder.find_requirement(req_to_install, upgrade=self.upgrade) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\index.py", line 194, in find_requirement page = self._get_page(main_index_url, req) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\index.py", line 568, in _get_page session=self.session, File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\index.py", line 670, in get_page resp = session.get(url, headers={"Accept": "text/html"}) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\sessions.py", line 468, in get return self.request('GET', url, **kwargs) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\download.py", line 237, in request return super(PipSession, self).request(method, url, *args, **kwargs) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\sessions.py", line 456, in request resp = self.send(prep, **send_kwargs) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\sessions.py", line 559, in send r = adapter.send(request, **kwargs) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\adapters.py", line 305, in send conn = self.get_connection(request.url, proxies) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\adapters.py", line 215, in get_connection block=self._pool_block) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\packages\urllib3\poolmanager.py", line 258, in proxy_fro m_url return ProxyManager(proxy_url=url, **kw) File "c:\users\sg0219~1\appdata\local\temp\tmpxwg_en\pip.zip\pip\_vendor\requests\packages\urllib3\poolmanager.py", line 214, in __init__ 'Not supported proxy scheme %s' % self.proxy.scheme AssertionError: Not supported proxy scheme myusr Storing debug log for failure in C:\Users\myusr\pip\pip.log C:\ProgFiles\Python27> 

Когда я запускаю команду без имени usr и пароля, она работает нормально, но прокси отклоняет запрос, требующий аутентификации («407 authenticationrequired»).

 C:\ProgFiles\Python27>get-pip.py --proxy 111.222.333.444:80 Downloading/unpacking pip Cannot fetch index base URL https://pypi.python.org/simple/ Could not find any downloads that satisfy the requirement pip Cleaning up... No distributions at all found for pip Storing debug log for failure in C:\Users\sg0219898\pip\pip.log C:\ProgFiles\Python27>cat C:\Users\sg0219898\pip\pip.log ------------------------------------------------------------ C:\ProgFiles\Python27\get-pip.py run on 09/29/14 16:23:26 Downloading/unpacking pip Getting page https://pypi.python.org/simple/pip/ Could not fetch URL https://pypi.python.org/simple/pip/: connection error: ('Cannot connect to proxy.', error('Tunnel connection failed: 407 authenticationrequired',)) Will skip URL https://pypi.python.org/simple/pip/ when looking for download links for pip Getting page https://pypi.python.org/simple/ Could not fetch URL https://pypi.python.org/simple/: connection error: ('Cannot connect to proxy.', error('Tunnel connection failed: 407 authenticationrequired',)) Will skip URL https://pypi.python.org/simple/ when looking for download links for pip Cannot fetch index base URL https://pypi.python.org/simple/ URLs to search for versions for pip: * https://pypi.python.org/simple/pip/ Getting page https://pypi.python.org/simple/pip/ Could not fetch URL https://pypi.python.org/simple/pip/: connection error: ('Cannot connect to proxy.', error('Tunnel connection failed: 407 authenticationrequired',)) Will skip URL https://pypi.python.org/simple/pip/ when looking for download links for pip Could not find any downloads that satisfy the requirement pip Cleaning up... Removing temporary dir c:\users\sg0219~1\appdata\local\temp\pip_build_SG0219898... No distributions at all found for pip Exception information: Traceback (most recent call last): File "c:\users\sg0219~1\appdata\local\temp\tmp36ynxd\pip.zip\pip\basecommand.py", line 122, in main status = self.run(options, args) File "c:\users\sg0219~1\appdata\local\temp\tmp36ynxd\pip.zip\pip\commands\install.py", line 278, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) File "c:\users\sg0219~1\appdata\local\temp\tmp36ynxd\pip.zip\pip\req.py", line 1177, in prepare_files url = finder.find_requirement(req_to_install, upgrade=self.upgrade) File "c:\users\sg0219~1\appdata\local\temp\tmp36ynxd\pip.zip\pip\index.py", line 277, in find_requirement raise DistributionNotFound('No distributions at all found for %s' % req) DistributionNotFound: No distributions at all found for pip C:\ProgFiles\Python27> 

Я коротко посмотрел на urllib3\poolmanager.py и, похоже, не имеет ничего общего с именем пользователя / паролями.

3 Solutions collect form web for “pip, прокси-аутентификация и «Не поддерживаемая схема прокси»”

Это жалуется на схему URL (который urlparse понимает как myusr ), чтобы работать, что вы должны делать:

 get-pip.py --proxy http://myusr:mypswd@111.222.333.444:80 

Это связано с тем, что для сценария требуются переменные окружения http_proxy или https_proxy, содержащие схему в URL-адресе. Задайте переменные окружения

  export http_proxy="http://<hostname>:<port>" export https_proxy="https://<hostname>:<port>" 

перед запуском "python get-pip.py"

Для проблемы, о которой вы говорили, это зависит от того, как была настроена аутентификация прокси-сервера. Например, моя интрасеть использует Windows AD и, вероятно, прокси-сервер использует Windows Integrated auth. Таким образом, когда я делаю pip install --proxy http://<server-ip>:<port> <module-name> , он отлично работает. Обратите внимание, что мне не нужно вводить имя пользователя и пароль, вероятно, из-за встроенного auth.

Таким образом, вам нужно будет узнать, какая аутентификация используется вашим прокси-сервером. Вы можете использовать инструмент Fiddler (или любой другой сетевой анализатор), чтобы проверить заголовки WWW-Authenticate в ответе 407, чтобы проверить, какие средства аутентификации поддерживают сервер ,

  • Google App Engine - SSL InsecurePlatformWarning
  • Почему моя программа зависает после протоколов urllib3 Запуск нового соединения HTTPS?
  • Запросы Python, предупреждение: urllib3.connectionpool: пул соединений заполнен
  • Прокси-соединение с Python
  • Python urllib3 и как обрабатывать поддержку файлов cookie?
  • что я должен использовать вместо urlopen в urllib3
  • Python-запросы ImportError: невозможно импортировать имя HeaderParsingError
  • Не удается импортировать request.packages.urllib3.util 'Retry'
  • Python - лучший язык программирования в мире.