Использование pip за прокси с CNTLM

Я пытаюсь использовать pip за прокси на работе.

Один из ответов этого сообщения предложил использовать CNTLM. Я установил и настроил его на этот другой пост, но запуск cntlm.exe -c cntlm.ini -I -M http://google.com дал ошибку Connection to proxy failed, bailing out.

Я также попробовал pip install -–proxy=user:[email protected]:3128 (порт CNTLM по умолчанию), но поднял Cannot fetch index base URL http://pypi.python.org/simple/. Ясно что-то с прокси.

Кто-нибудь знает, как можно более точно проверить, правильно ли CNTLM настроен, или вообще существует ли это вообще? Я знаю, что вы также можете установить переменную среды http_proxy, как описано здесь, но я не уверен, какие учетные данные ввести. Те из cntlm.ini?

Ответ 1

Чтобы настроить CNTLM для окон, следуйте этой статье . Для Ubuntu прочитайте мой пост в блоге.

Edit:

В принципе, чтобы использовать CNTLM на любой платформе, вам нужно настроить свое имя пользователя и хэшировать пароль, прежде чем использовать http://127.0.0.1:3128 в качестве прокси-сервера для своего родительского прокси.

  • Отредактируйте конфигурацию и добавьте важную информацию, такую ​​как домен, имя пользователя, пароль и родительский прокси.

  • Создайте хешированный пароль.

    Windows cntlm –c cntlm.ini –H

    Ubuntu/Linux cntlm -v -H -c /etc/cntlm.conf

  • Удалите текстовый пароль из конфигурации и замените их на сгенерированные пароли.

Чтобы проверить работу:

Windows cntlm –M http://www.google.com

Ubuntu/Linux sudo cntlm -M http://www.google.com/

Более подробные инструкции см. в ссылках выше.

Обновление:

Просто для полноты, я смог настроить и использовать CNTLM в Windows в последнее время. Я столкнулся с проблемой во время процесса синхронизации Kindle для ПК из-за нашего прокси-сервера и установки и настройки CNTLM для Windows исправил эту проблему для меня. Более подробную информацию см. В в моей статье.

Ответ 2

С Ubuntu я не мог заставить прокси-сервер работать как рекламируемый - поэтому следующая команда сделала не работу:

sudo pip --proxy http://web-proxy.mydomain.com install somepackage

Но экспорт переменной среды https_proxy (обратите внимание на ее https_proxy not http_proxy) сделал трюк:

export https_proxy=http://web-proxy.mydomain.com

затем

sudo -E pip install somepackage

Ответ 3

В Windows не забудьте установить

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

что мне нужно было установить для

pip install pep8

Ответ 4

Я не работал со мной. Я использовал https для работы:

pip install --proxy=https://[email protected]:port somepackage

Чтобы обновить, добавьте -U.

Ответ 5

Вы можете продолжать использовать pip поверх HTTPS, добавив корневой сертификат корпорации в файл cacert.pem в папке site-packages/pip. Затем настройте pip для использования вашего прокси, добавив следующие строки в ~/pip/pip.conf(или ~\pip\pip.ini, если вы в Windows):

[global]
proxy = [user:[email protected]]proxy.server:port

Что это. Нет необходимости использовать сторонние пакеты или отказаться от HTTPS (конечно, ваш сетевой администратор все равно может видеть, что вы делаете).

Ответ 6

для окон; установите прокси в командной строке как
set HTTP_PROXY=domain\username:[email protected]:myproxyport

Пример

:
set http_proxy=IND\namit.kewat:[email protected]:8880

Ответ 7

Это сработало для меня (в Windows через CMD):

pip install --proxy proxyserver:port requests

Ответ 8

$ pip --proxy http://proxy-host:proxy-port install packagename

Это то, что сработало для меня

Ответ 9

В нашей политике безопасности я не могу использовать https с pypi, SSL-проверка перезаписывает сертификаты, она нарушает встроенную защиту протокола для www.python.org. Человек посередине является администратором сети.

Итак Мне нужно использовать простой http. Для этого мне нужно переопределить системный прокси, а также pypi по умолчанию:

bin/pip install --proxy=squidproxy:3128 -i http://www.python.org/pypi --upgrade "SQLAlchemy>=0.7.10"

Ответ 11

Откройте командную строку Windows.

Установите переменные окружения прокси.

set http_proxy=http://user:[email protected]_ip:port
set https_proxy=https://user:[email protected]_ip:port

Установите пакеты Python с использованием прокси в той же командной строке Windows.

pip install --proxy="user:[email protected]_ip:port" package_name

Ответ 12

Телефон как мобильная точка доступа/USB-модем

Если у меня есть много проблем с поиском пути через корпоративный прокси-сервер, я подключаюсь к сети через мой телефон (беспроводная точка доступа, если у меня есть Wi-Fi, USB-кабель, если нет) и быстро выполните pip install.

Возможно, он не работает для всех настроек, но должен заставить большинство людей быть в порядке.

Ответ 13

В Ubuntu 14.04 LTS

   sudo pip --proxy http://PROXYDOM:PROXYPORT install package

Приветствия

Ответ 14

У меня была такая же проблема: за корпоративным прокси с auth на работе я не мог работать с протоколом, а также с Sublime Text 2 (ну, он работал с пользовательской настройкой моих настроек прокси-сервера). Для pip (и я попробую сделать это на git), я решил установить его прокси-сервер cntlm. Это было очень просто настроить:

  • Изменить cntlm.ini
  • Отредактируйте поля "Username", "Domain", "Password"
  • Добавьте строку "Прокси" с настройками прокси-сервера: server:port
  • Убедитесь, что строка "NoProxy" объединяет "localhost" (например, по умолчанию)
  • Обратите внимание на порт по умолчанию: 3128
  • Сохраните и это.

Чтобы проверить, что работает, просто запустите новый инструмент командной строки и попробуйте:

pip install django --proxy=localhost:3128

Это сработало для меня. Надеюсь, это поможет вам.

Ответ 15

Установите переменную invironment в Дополнительные параметры системы. В командной строке он должен вести себя так:

C:\Windows\system32> echo% http_proxy%

Http://имя пользователя: passowrd @прокси: порт

C:\Windows\system32> echo% https_proxy%

Http://имя пользователя: пароль @прокси: порт

Позже, просто pip install whatEver должно работать.

Ответ 16

если вы хотите обновить pip через прокси, можете использовать (например, в Windows):

python -m pip --proxy http://proxy_user:[email protected]_hostname:proxy_port insta
ll --upgrade pip

Ответ 17

Я мог бы добиться этого, запустив:

pip install --proxy=http://user:[email protected]:3128 package==version

Я использую Python 3.7.3 внутри корпоративного прокси.

Ответ 18

Для пользователей Windows: если вы хотите установить Flask-MongoAlchemy, используйте следующий код

pip install Flask-MongoAlchemy --proxy="http://example.com:port"**

Ответ 19

Как просто делать это локально? Скорее всего, вы можете загрузиться с источника https через ваш браузер.

  • Загрузите файл модуля (mysql-connector-python-2.0.3.zip/gz... и т.д).
  • Извлеките его и перейдите в извлеченный каталог, где setup.py находится   и вызовите:

    C:\mysql-connector-python-2.0.3>python.exe setup.py install
    

Ответ 20

В CentOS (на самом деле я думаю, что все дистрибутивы Linux аналогичны) запустите

env|grep http_proxy

и

env|grep https_proxy

проверьте, что является результатом этих команд (они должны содержать ваши прокси-адреса).

Если выходы пустые или имеют неправильные значения, измените их, например:

export http_proxy=http://10.1.1.1:8080
export https_proxy=http://10.1.1.1:8080

Теперь попробуйте извлечь и установить некоторые пакеты с помощью pip:

pip --proxy http://10.1.1.1:8080 install robotframework

и на самом деле я никогда не встречал случая, когда он не работал. Для некоторых систем вам нужно быть root (sudo недостаточно).

Ответ 21

Предупреждение. В команде "поиск пика" есть что-то очень плохое. Команда поиска не использует параметр прокси-сервера независимо от способа его передачи.

Я пытался выяснить проблему, только пытаясь выполнить команду "поиск", и нашел этот пост с подробным объяснением этой ошибки: https://github.com/pypa/pip/issues/1104

Я могу подтвердить, что ошибка остается с пиком 1.5.6 на Debian 8 с помощью python 2.7.9. Команда "pip install" работает как шарм.

Ответ 22

Я получил ошибку:

[email protected]:~$ sudo http_proxy=http://localhost:3128 pip install django==1.8.8 
Downloading/unpacking django==1.8.8
  Cannot fetch index base URL http://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement django==1.8.8
No distributions at all found for django==1.8.8
Storing complete log in /home/chris/.pip/pip.log

(Порт прокси-сервера - это порт ssh, перенаправленный на localhost:3128).

Мне пришлось установить как http, так и https-прокси, чтобы заставить его работать:

[email protected]:~$ sudo http_proxy=http://localhost:3128 https_proxy=http://localhost:3128 pip install django==1.8.8
Downloading/unpacking django==1.8.8
  Downloading Django-1.8.8.tar.gz (7.3Mb): 7.3Mb downloaded
  Running setup.py egg_info for package django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
  Running setup.py install for django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755
    changing mode of /usr/local/bin/django-admin.py to 755
    Installing django-admin script to /usr/local/bin
Successfully installed django
Cleaning up...

as http://pypi.python.org/simple/ перенаправляется на https://pypi.python.org/simple, но pip ошибка не сообщает вам.

Ответ 23

Я тоже не специалист в этом, но я сделал это, установив переменную all_proxy в файл ~/.bashrc. Чтобы открыть файл ~/.bashrc и отредактировать его из терминала, выполните следующие команды:

gedit ~/.bashrc &

Добавьте в конце файла следующее:

export all_proxy="http://x.y.z.w:port"

Затем либо откройте новый терминал, либо запустите его в том же терминале,

source ~/.bashrc

Простое использование переменных http_proxy и https_proxy недостаточно для простого использования pip install somepackage. Хотя как-то sudo -E pip install somepackage работает, но это дало мне некоторую проблему, если я использую локальную установку Anaconda в папке моих пользователей.

P.S. - Я использую Ubuntu 16.04.

Ответ 24

Установите следующую переменную среды: export PIP_PROXY=http://web-proxy.mydomain.com

Ответ 25

Если вы используете Linux от имени root:

env https_proxy=http://$web_proxy_ip:$web_proxy_port pip install something

Когда вы используете env, он экспортирует переменную https_proxy для текущего выполнения команды pip install.

$ web_proxy_ip - это имя хоста или IP-адрес вашего прокси. $ web_proxy_port - это порт.

Ответ 26

Если вы подключаетесь к Интернету через прокси-сервер, могут возникнуть проблемы с запуском некоторых команд.

Задайте переменные среды для конфигурации прокси в командной строке следующим образом:

set http_proxy=http://username:pas[email protected]:proxyport
set https_proxy=https://username:[email protected]:proxyport

Ответ 27

Это то, что работает для меня:

pip --proxy proxy url:port command package

Ответ 28

Я решил проблему с PIP в Windows, используя "Fiddler" (https://www.telerik.com/download/fiddler). После загрузки и установки сделайте следующее:

"Правила" => нажмите "Автоматическая аутентификация"

Пример: pip install virtualenv -proxy 127.0.0.1:8888

Просто откройте подсказку и используйте.

https://github.com/pypa/pip/issues/1182 Поиск по запросу "Voltagex" (комментарий от 22 мая 2015 г.)

Ответ 29

для окон перейдите в C: /ProgramData/pip/pip.ini и установите

[Глобальный]

proxy = http://YouKnowTheRest

с вашими данными прокси. Это постоянно настраивает прокси для pip.

Ответ 30

Более простой подход может быть следующим:

  1. Создайте папку с именем "pip" в своем каталоге $HOME.
  2. Создайте файл с именем "pip.ini" (Windows) или "pip.conf" (Linux) в каталоге создан на шаге 1
  3. Копировать и вставьте следующие строки под pip.ini/pip.conf:

    [global]
    trusted-host = pypi.python.org
                   pypi.org
                   files.pythonhosted.org