Как настроить прокси компании urllib3 для контекста? - PullRequest
0 голосов
/ 04 февраля 2020

Моя конечная цель - извлечь карту тайла, используя контекст и графику (из этого примера ):

import geopandas
import contextily as ctx
df = geopandas.read_file(geopandas.datasets.get_path('nybb'))
df = df.to_crs(epsg=3857)
ax = df.plot(figsize=(10, 10), alpha=0.5, edgecolor='k')
ctx.add_basemap(ax)

Я использую Anaconda за прокси-сервером компании. Прокси установлены правильно в файле .condar c:

proxy_servers:
  http: http://myproxy.com:8080
  https: https://myproxy.com:8080

Установка пакета работает нормально, и conda config --show действительно определяет конфигурацию прокси.

Однако я получаю следующее Ошибка urllib3 после ctx.add_basemap(ax):

urllib3.exceptions.NewConnectionError: <urllib3.connection.VerifiedHTTPSConnection object at 0x000001EDD50E66D8>: Failed to establish a new connection

Что я не понимаю, так это то, что, несмотря на конфигурацию прокси, мне нужно указать настройку прокси, чтобы базовый c запрос urllib3 работал.

Если прокси не указан:

http = urllib3.PoolManager()
r = http.request('GET', 'http://httpbin.org/robots.txt')
Out: NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000012FE62B0F98>: Failed to establish a new connection:

Но указание прокси работает:

proxy = urllib3.ProxyManager('http://myproxy.com:8080')
proxy.request('GET', 'http://google.com/')
Out: <urllib3.response.HTTPResponse at 0x12fe6280048>

Я бы предположил, что настройка прокси в Anaconda будет обрабатывать это для любого веб-запроса .

Я думал о том, чтобы попытаться установить определенную информацию прокси для urllib3, как я понимаю, это делается через urllib.request.install_opener(opener) в { ссылка }, но такой «открывашка» не кажется существовать для urllib3.

В конце концов:

  • Как указать прокси-информацию с использованием контекста?
  • Почему для установки прокси-информации в Anaconda недостаточно для urllib3 ?

Любая помощь оценил, спасибо.

...