Использование Python Pip из-за брандмауэра Sophos с сертификатом

1276
LazyLeopard

У меня есть эта проблема с использованием pip на моем рабочем месте, поскольку системный администратор начал использовать брандмауэр Sophos XG с пользовательским центром сертификации, установленным в локальной системе Windows и Firefox. У меня не настроено ни одного прокси-сервера ни на одном из клиентов.

Когда я пытаюсь что-то сделать, это происходит.

C:\Users\talha.ahmed>pip install objdict Collecting objdict Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3B4A8>, 'Connecti on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/ Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3B588>, 'Connecti on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/ Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3BC88>, 'Connecti on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/ Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3B780>, 'Connecti on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/ Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x0000000003A3BB38>, 'Connecti on to 10.10.2.124 timed out. (connect timeout=15)')': /simple/objdict/ Could not find a version that satisfies the requirement objdict (from versions: ) No matching distribution found for objdict 

Обратите внимание, что он говорит, что получает тайм-аут соединения с 10.10.2.124 (который не является шлюзом / прокси-сервером) вместо pypi.python.org, который может быть каким-то локальным сервером или модемом или чем-то еще.

Однако я могу получить доступ к https://pypi.python.org/simple/objdict/, используя мой firefox, и загрузить пакеты вручную. Когда я это делаю, я вижу Firefox, используя поддельный сертификат Sophos, и все, кажется, работает нормально.

Я уже пробовал использовать --certопцию для pip и пытался добавить сертификат в файл C: \ Python27 \ Lib \ site-packages \ pip_vendor \ запросы \ cacert.pem. Использование --proxyопций в различных комбинациях, как это предлагается в различных дискуссиях о SO и SU.

Так что вы можете предложить мой следующий подход?

0

1 ответ на вопрос

0
LazyLeopard

Проблема ушла, когда используется http_proxyи https_proxyпеременными, чтобы указать прокси - сервер для пипа. Очевидно pip игнорировал --proxyопцию из командной строки, однако он считывал переменные окружения.

Pip использует настройки прокси из «настроек интернета» системы Windows, которые используются Chrome и Internet Explorer, но игнорируются Firefox. В моем конкретном случае в настройках Интернета было установлено использование прокси на 10.10.2.124 (неправильно), что мне также не требовалось.

Удаление прокси-проверки из «параметров Интернета» фактически устраняет необходимость указывать переменную среды. Единственное, что осталось сказать - это сертификат, который можно сделать с помощью параметра --cert.

Похожие вопросы