CNTLM과 함께 프록시 뒤에서 pip 사용


280

직장에서 프록시 뒤에 pip를 사용하려고합니다.

이 게시물 의 답변 중 하나는 CNTLM 사용을 제안 했습니다 . 이 다른 게시물에 따라 설치하고 구성 했지만 실행 cntlm.exe -c cntlm.ini -I -M http://google.com하면 오류가 발생했습니다 Connection to proxy failed, bailing out.

나는 또한 pip install -–proxy=user:pass@localhost:3128(기본 CNTLM 포트)를 시도 했지만 상승했다 Cannot fetch index base URL http://pypi.python.org/simple/. 프록시에 문제가있는 것 같습니다.

누구나 CNTLM이 올바르게 설정되었는지 또는 다른 방법이 있는지 확인하는 방법을 알고 있습니까? 난 당신이 또한 설정할 수 있습니다 알고 http_proxy설명 된대로 환경 변수를 여기 하지만 난 어떤 자격 증명에 넣어. 것들을에서 확실하지 않다 cntlm.ini?


2
프록시의 IP 주소와 포트 번호를 알고 cntlm.ini (프록시가있는 경우 프록시의 사용자 이름과 비밀번호)에 적절하게 설정해야합니다.
number5

2
CNTLM을 설정하고 사용하는 방법에 대한 블로그 를 작성했습니다 . 게시물은 우분투와 Rails를 설치하기위한 것이지만 프로세스는 동일 할 것이라고 생각합니다. 편집 : Windows 용 CNTLM을 설정하는 방법에 대한 이 기사 를 읽으십시오. 기본적으로 내 우분투 버전과 동일합니다. HTH.
애니 Lagang

답변:


74

Windows 용 CNTLM을 설정하려면이 기사를 따르십시오 . 우분투의 경우 내 블로그 게시물을 읽으십시오 .

편집하다:

기본적으로 모든 플랫폼에서 CNTLM을 사용하려면 상위 프록시에 프록시로 사용하기 전에 사용자 이름 및 해시 비밀번호 를 설정해야합니다 http://127.0.0.1:3128.

  1. 구성을 편집하고 도메인, 사용자 이름, 비밀번호 및 상위 프록시와 같은 중요한 정보를 추가하십시오.

  2. 해시 된 비밀번호를 생성하십시오.

    윈도우 cntlm –c cntlm.ini –H

    우분투 / 리눅스 cntlm -v -H -c /etc/cntlm.conf

  3. 구성에서 일반 텍스트 비밀번호를 제거하고 생성 된 비밀번호로 바꾸십시오.

작동하는지 확인하려면 :

윈도우 cntlm –M http://www.google.com

우분투 / 리눅스 sudo cntlm -M http://www.google.com/

자세한 지침은 위의 링크를 참조하십시오.

최신 정보:

완벽을 기하기 위해 최근 Windows에서 CNTLM을 구성하고 사용할 수있었습니다. 프록시와 Windows 용 CNTLM 설치 및 구성으로 인해 Kindle for PC의 동기화 프로세스 중에 문제가 발생했습니다. 자세한 내용내 기사 를 참조하십시오.


이 가이드로 문제가 해결되지 않으면 명령 줄 옵션으로 pip를 실행 해보 --trusted-host pypi.python.org십시오.
Petr

1
회사 환경의 Windows 또는 Mac에서 실제로 cntlm을 작동시킬 수는 없지만 Windows 컴퓨터에 Fiddler를 설치하고 프록시로 사용하여 문제를 해결했습니다.
Dean Meehan

268

Ubuntu를 사용하면 프록시 옵션을 광고대로 작동시킬 수 없으므로 다음 명령이 작동 하지 않았습니다 .

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

그러나 https_proxy환경 변수를 내보내는 것은 https_proxy아닙니다 http_proxy.

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

그때

sudo -E pip install somepackage

1
https_proxy를 설정하면 Mac OS X에서도 작업이 수행됩니다.
Bharadwaj Srigiriraju

4
여기에 같은, --proxy 작동하지 않았다, 나는 (A 법인의 방화벽 뒤에 데비안) BOTH HTTP_PROXY와 https_proxy를를 지정했다
marc.guenther

34
프로그램에 내 ENV가 표시되지 않는 이유가 궁금 할 때이 명령 을 포함 -E시켜 주셔서 감사합니다 sudo.
AndyC

11
sudo에 추가 된 -E가 나를 위해 트릭을했습니다. 이전에 설정 한 환경 변수 "http_proxy"를 유지합니다. 감사!
imagineerThat

7
PIP --proxy = someproxy - URL : 포트는 일부 패키지가 핍 6.1.1로 Win8.1에 나를 위해 일한 설치
zenpoy

96

Windows에서 설정하는 것을 잊지 마십시오

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

내가 설정해야 할 것

pip install pep8

'export http_proxy = <proxy_host> : <port>'와 함께 fedora에서도 작동
Damien

5
이것은 나를 위해 일했지만 SET HTTPS_PROXY = ht tps : // user : pass @ addr : port [스택 오버플로가 방해하지 않도록 추가 해야하는 공간] 형식으로 만 암호에 특수 문자를 바꿔야했습니다. 16 진수 형식으로 16 진수로 % nn
Seth

이것은 나를 위해 일했습니다. 전에, 나는하고 있었다 : SET HTTPS_PROXY=username:password@<proxyHost>:<proxyPort>그것은 작동하지 않았다.
Zahra

환경 변수가 왜 필요한지 그리고 pip가 어떻게 사용하는지에 대한 설명이 있습니까? conda는 .condarc 파일에서 프록시를 구성하기에 충분합니다.
maggie

1
호출 예는 다음과 같습니다 : SET HTTPS_PROXY = https://512893:Pass%23h98@proxy.example.com:6050for username 512893& password pass#h98. 특수 문자를 비밀번호 또는 사용자 이름 ( #이 경우) 으로 URL 인코딩해야합니다 . HTTP_PROXY플래그 설정도 시도해보십시오 .
Nuhman

65

그것은 나를 위해 작동하지 않았습니다. 직장에서 https 를 사용해야 했습니다.

pip install --proxy=https://user@mydomain:port somepackage

업데이트하려면 -U를 추가하십시오.


1
이것은 추가 패키지가 필요없는 가장 간단한 Windows 용 솔루션처럼 보입니다.
JE Carter II 19

3
비밀번호를 사용해야하는 경우 :pip install somepackage --proxy https://user:password@mydomain:port
Daniel R Carletti

무엇 user을 넣어야 할지 모른다면 , 아마도 아무 것도 넣지 않았기 때문일 것입니다.pip install --proxy=https://mydomain:port somepackage
Olivier

45

회사의 루트 인증서를 site-packages / pip 폴더의 cacert.pem 파일에 추가하여 HTTPS를 통한 pip를 계속 사용할 수 있습니다. 그런 다음 ~ / pip / pip.conf (또는 Windows의 경우 ~ \ pip \ pip.ini)에 다음 줄을 추가하여 프록시를 사용하도록 pip를 구성하십시오.

[global]
proxy = [user:passwd@]proxy.server:port

그게 다야. 타사 패키지를 사용하거나 HTTPS를 포기할 필요가 없습니다 (물론 네트워크 관리자는 여전히 수행중인 작업을 볼 수 있습니다).


이것은 나를 위해 일했지만 pip를 수동으로 설치 한 후에 만 ​​초기 get-pip.py를 사용할 수 없음을 의미합니다.
Luke Dunstan

2
pip.ini의 위치를 참조하십시오 pip.pypa.io/en/latest/user_guide.html#configuration을 ": \ Python34 \ lib 디렉토리 \ 사이트 - 패키지 \ pip_vendor \ 요청 \ cacert.pem C"창에서 나는에 cacert 발견
lib

2
이것은 나를 위해 일하지만 하나 만들 수 있었다, 그래서 나는 pip.config 파일이 didnt는 ~/.pip/pip.conf다음을 export PIP_CONFIG_FILE=/root/.pip/pip.conf내 설치했다! 감사!
Rhyuk

2
고마워, 당신은 나를 올바른 길로 설정했습니다! 참고로, Windows 7 pip의 인증서 파일에서 Python 3.7의 경우 분명히 위치에 [Python37]\Lib\site-packages\pip\_vendor\certifi\cacert.pem있습니다. 회사의 SSL 가로 채기 인증서를 Base64 .cer 형식으로 내보내고 공개 키를 해당 파일에 붙여넣고 회사 프록시 뒤에 완전한 https 지원을 제공하십시오.
Mike Strobel

2
창문에 당신의 pip ini 위치는 AppData/Roaming/pip/pip.ini....
Erik Aronesty

27

창문 용; 명령 프롬프트에서 프록시를 다음과 같이 설정하십시오.
set HTTP_PROXY=domain\username:password@myproxy:myproxyport

예:
set http_proxy=IND\namit.kewat:xl123456@192.168.180.150:8880


3
암호에!와 같은 특수 문자가 있으면 어떻게됩니까? 그리고 @.
라비 쿠마르

1
배쉬 이스케이프 문자로 특수 문자를 탈출 : \
Adam

1
이스케이프 문자 ()를 사용하여 비밀번호에서 '@'을 이스케이프 할 수 없으며 프록시 문자열에서 % 40으로 URL 인코딩해야합니다.
Deep-B


1
이 환경 변수 설정은 내 컴퓨터의 pip에 영향을 미치지 않는 것 같습니다
Jack M

26

이것은 나를 위해 일했습니다 (CMD를 통해 Windows에서).

pip install --proxy proxyserver:port requests

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

이것이 나를 위해 일한 것입니다


4
이것은 프록시 뒤에 일시적으로 만있을 때 실제로 유용합니다. 또한 사용자 이름과 비밀번호를 구문에 추가해야했습니다.pip --proxy http://username:password@proxy-host:proxy-port install <package>
Terrabits

14

Google 보안 정책에 따라 https를 사용할 수 없습니다 를 pypi와 함께 SSL 검사는 인증서를 다시 작성하며 www.python.org의 내장 pip 보안을 손상시킵니다. 중간에있는 사람은 네트워크 관리자입니다.

따라서 일반 http를 사용해야 합니다. 이렇게하려면 시스템 프록시와 기본 pypi를 재정의해야합니다.

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

2
더 이상 작동하지 않습니다. PyPi는 이제 자동으로 https로 전달합니다.
Martin M.

SSL 검사가 작동하지 않는 것 같습니다. 키 고정 또는 앞으로 비밀이 원인 일 수 있습니까?
bbaassssiiee

@SamuelHarmer. Security음절이 4 개 있습니다. 트럼프가 너무 많습니다.
javadba 2016 년

2
@bbaassssiiee는 회사 프록시가 모든 인증서를 다시 작성하여 자체 루트 인증서를 사용하도록 모든 인증서를 다시 작성하고 (모든 SSL 트래픽을 해독 할 수 있음) pip가 인증서 확인에 실패하기 때문에 pip가 HTTPS로 중단되었다고 말할 수 있습니다. 물론 2017 년에 pip는 --proxy가 사용될 때 인증서 확인을 자동으로 피합니다. SSL 사이트를 탐색 할 때에도 SSL을 사용하지 않는 HTTP 프록시를 통해 프록시하기 때문에 많은 회사 프록시가 이미 모든 트래픽을 비 SSL로 효과적으로 변경합니다.
cowbert

13

Windows 명령 프롬프트를여십시오.

프록시 환경 변수를 설정하십시오.

set http_proxy=http://user:password@proxy_ip:port
set https_proxy=https://user:password@proxy_ip:port

동일한 Windows 명령 프롬프트에서 프록시를 사용하여 Python 패키지를 설치하십시오.

pip install --proxy="user:password@proxy_ip:port" package_name

12

Windows 7에서 :

pip install --proxy DOMAIN\user:password@proxyaddress:port package

즉 :

pip install --proxy BR\neo:p4ssw0rd@myproxyrocks.com.br:8080 virtualenv

11

모바일 핫스팟 / USB 테 더링으로 전화

회사 프록시를 통해 길을 찾는 데 많은 어려움이 있으면 전화를 통해 웹에 연결하고 (Wi-Fi가있는 경우 무선 핫스팟, 그렇지 않은 경우 USB 테더) 빠른 연결을 수행합니다. pip install .

모든 설정에서 작동하지는 않지만 대부분의 사람들을 한곳에 모아야합니다.



7

나는 같은 문제가 있었다 : 직장에서 인증을받은 회사 프록시 뒤에는 Sublime Text 2뿐만 아니라 핍 작업을 할 수 없었습니다. pip의 경우 (git에서 시도해 볼 것입니다) cntlm 프록시 설치를 해결했습니다. 구성하는 것은 매우 간단했습니다.

  1. cntlm.ini 편집
  2. "사용자 이름", "도메인", "암호"필드 편집
  3. 프록시 설정으로 "프록시"행을 추가하십시오. server:port
  4. "NoProxy"행에 "localhost"가 통합되어 있는지 확인하십시오 (기본값)
  5. 기본 포트를 참고하십시오 : 3128
  6. 저장하면됩니다.

작동하는지 테스트하려면 새 명령 줄 도구를 시작하고 다음을 시도하십시오.

pip install django --proxy=localhost:3128

그것은 나를 위해 일했다. 이것이 도움이되기를 바랍니다.


6

나는 이것을 실행하여 이것을 달성 할 수 있었다 :

pip install --proxy=http://user:pass@your.proxy.com:3128 package==version

공동 프록시 내부에서 Python 3.7.3을 사용하고 있습니다.



5

프록시로 pip를 업그레이드하려면 다음을 사용할 수 있습니다 (예 : Windows).

python -m pip --proxy http://proxy_user:proxy_password@proxy_hostname:proxy_port insta
ll --upgrade pip

4

Windows 사용자의 경우 : Flask-MongoAlchemy를 설치하려면 다음 코드를 사용하십시오.

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

3

프록시 뒤에서 인터넷에 연결하는 경우 일부 명령을 실행하는 데 문제가있을 수 있습니다.

명령 프롬프트에서 프록시 구성을위한 환경 변수를 다음과 같이 설정하십시오.

set http_proxy=http://username:password@proxyserver:proxyport
set https_proxy=https://username:password@proxyserver:proxyport

2

CentOS에서 (실제로 모든 리눅스 배포판이 비슷하다고 생각합니다)

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

실제로 작동하지 않는 경우를 결코 만나지 못했습니다. 일부 시스템의 경우 루트 여야합니다 (스도 충분하지 않음).


2

경고, "pip search"명령에는 문제가 있습니다. 검색 명령은 전달 방법에 관계없이 프록시 설정을 사용하지 않습니다.

"search"명령 만 시도하는 문제를 파악하려고했지만 해당 버그에 대한 자세한 설명과 함께이 게시물을 찾았습니다. https://github.com/pypa/pip/issues/1104

파이썬 2.7.9가있는 데비안 8에서 pip 1.5.6으로 버그가 남아 있음을 확인할 수 있습니다. "pip install"명령은 매력처럼 작동합니다.


2

오류가 발생했습니다.

chris@green:~$ 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 프록시를 설정해야했습니다.

chris@green:~$ 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...

http://pypi.python.org/simple/로 리디렉션 https://pypi.python.org/simplepip의 오류가 당신에게하지 않습니다.


2

또한 이것에 대한 전문가는 아니지만 all_proxy~ / .bashrc 파일에서 변수를 설정하여 작동하게했습니다 . ~/.bashrc터미널에서 파일 을 열고 편집 하려면 다음 명령을 실행하십시오.

gedit ~/.bashrc &

파일 끝에 다음을 추가하십시오.

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

그런 다음 새 터미널을 열거 나 동일한 터미널에서 다음을 실행하십시오.

source ~/.bashrc

설정 http_proxyhttps_proxy변수만으로는 간단한 사용법으로는 충분하지 않습니다 pip install somepackage. 어떻게 든 sudo -E pip install somepackage작동하지만 이것이 사용자 폴더에 Anaconda의 로컬 설치를 사용하는 경우 문제가 발생했습니다.

추신-우분투 16.04를 사용하고 있습니다.


2

로컬에서 수행하는 것은 어떻습니까? 대부분의 경우 브라우저를 통해 https 소스에서 다운로드 할 수 있습니다

  1. 모듈 파일 (mysql-connector-python-2.0.3.zip / gz ... 등)을 다운로드하십시오.
  2. 압축을 풀고 setup.py가있는 압축이 풀린 디렉토리로 이동하여 다음을 호출하십시오.

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

6
그런데 당신은 (... 그리고 의존성 등) 직접 가서 모든 종속성을 가야
jonrsharpe

1

이것이 나를 위해 일하는 것입니다.

pip --proxy proxy url:port command package

1

다음 환경 변수를 설정하십시오. export PIP_PROXY=http://web-proxy.mydomain.com


1

Linux를 루트로 사용하는 경우 :

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

env를 사용하면 pip install 명령의 현재 실행을 위해 변수 https_proxy를 내 보냅니다.

$ web_proxy_ip는 프록시의 호스트 이름 또는 IP입니다. $ web_proxy_port는 포트입니다.



0

Windows의 경우 C : /ProgramData/pip/pip.ini로 이동하여 설정하십시오.

[글로벌]

프록시 = http : // YouKnowTheRest

프록시 세부 정보와 함께. 이것은 pip에 대한 프록시를 영구적으로 구성합니다.


0

더 간단한 접근법은 다음과 같습니다.

  1. 에 "pip"라는 이름의 폴더를 만듭니다. $HOME디렉토리 .
  2. 1 단계에서 작성된 디렉토리에 "pip.ini"(Windows) 또는 "pip.conf"(Linux)라는 파일을 작성하십시오.
  3. pip.ini / pip.conf 아래에 다음 줄을 복사하여 붙여 넣습니다.

    [global]
    trusted-host = pypi.python.org
                   pypi.org
                   files.pythonhosted.org 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.