簡體   English   中英

在 CNTLM 代理后面使用 pip

[英]Using pip behind a proxy with CNTLM

我正在嘗試在工作代理后面使用 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的憑據?

與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

在 Windows 下不要忘記設置

SET HTTPS_PROXY=<proxyHost>:<proxyPort>

我需要設置什么

pip install pep8

要為 Windows 設置 CNTLM,請按照這篇文章 對於 Ubuntu,請閱讀我的博客文章

編輯:

基本上,要在任何平台上使用 CNTLM,在使用http://127.0.0.1:3128作為父代理的代理之前,您需要設置您的用戶名和散列密碼。

  1. 編輯配置並添加重要信息,如域、用戶名、密碼和父代理。

  2. 生成散列密碼。

    Windows cntlm –c cntlm.ini –H

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

  3. 從配置中刪除純文本密碼並將其替換為生成的密碼。

要檢查是否工作:

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

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

有關更詳細的說明,請參閱上面的鏈接。

更新:

為了完整起見,我最近能夠在 Windows 中配置和使用 CNTLM。 我在 PC 版 Kindle 同步過程中遇到了一個問題,因為我們的代理和安裝和配置 CNTLM for Windows 為我解決了這個問題。 詳情請參閱我的文章

它對我不起作用。 我不得不在工作中使用https

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

為了更新,添加-U。

您可以通過將您公司的根證書添加到您的 site-packages/pip 文件夾中的 cacert.pem 文件來繼續通過 HTTPS 使用 pip。 然后通過將以下幾行添加到 ~/pip/pip.conf (或 ~\\pip\\pip.ini 如果您使用的是 Windows)來配置 pip 以使用您的代理:

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

而已。 無需使用第三方軟件包或放棄 HTTPS(當然,您的網絡管理員仍然可以看到您在做什么)。

用於窗戶; 在命令提示符中將您的代理設置為
set HTTP_PROXY=domain\\username:password@myproxy:myproxyport

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

這對我有用(在 Windows 上通過 CMD):

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

這對我有用

根據我們的安全政策,我可能不會將 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"

打開 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

在 Windows 7 中:

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

IE:

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

手機作為移動熱點/USB 網絡共享

如果我在通過公司代理找到方法時遇到很多麻煩,我會通過我的手機連接到網絡(如果我有 wifi,則為無線熱點,如果沒有,則使用 USB 系繩)並進行快速pip install

可能不適用於所有設置,但應該讓大多數人在緊要關頭。

在 Ubuntu 14.04 LTS 中

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

干杯

我遇到了同樣的問題:在帶有 auth 工作的公司代理后面,我無法使用 pip 以及 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

那對我有用。 希望這會幫助你。

在高級系統設置中設置環境變量。 在命令提示符下,它的行為應該是這樣的:

C:\\Windows\\system32>echo %http_proxy%

http://username:passowrd@proxy:port

C:\\Windows\\system32>echo %https_proxy%

http://用戶名:密碼@代理:端口

后來,只需pip install whatEver可以了。

我可以通過運行來實現這一點:

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

我在公司代理中使用 Python 3.7.3。

如果您想通過代理升級 pip,可以使用(例如在 Windows 中):

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

對於 windows 用戶:如果你想安裝 Flask-MongoAlchemy 則使用以下代碼

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

如果您通過代理連接到 Internet,則在運行某些命令時可能會出現問題。

在命令提示符中設置代理配置的環境變量如下:

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

只在本地做怎么樣? 您很可能可以通過瀏覽器從 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

在 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

實際上我從來沒有遇到過它不起作用的情況。 對於某些系統,您需要成為根用戶(sudo 是不夠的)。

警告,“pip search”命令有一些非常糟糕的地方。 無論以何種方式傳遞,搜索命令都不會使用代理設置。

我試圖找出問題只是嘗試“搜索”命令,並發現這篇文章詳細解釋了該錯誤: https : //github.com/pypa/pip/issues/1104

我可以確認該錯誤仍然存​​在於 Debian 8 上的 pip 1.5.6 和 python 2.7.9。 “pip install”命令就像一個魅力。

我得到了錯誤:

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

(代理服務器的端口是轉發到localhost:3128 ssh 端口)。

我必須同時設置 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的錯誤沒有告訴你。

我也不是這方面的專家,但我通過在 ~/.bashrc 文件中設置all_proxy變量使其工作。 要打開~/.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。

PS - 我使用的是 Ubuntu 16.04。

在帶有身份驗證的工作代理后面使用 pip,請注意,在使用用戶和密碼指定代理 url 時,某些操作系統需要引用:

pip install <module> --proxy 'http://<proxy_user>:<proxy_password>@<proxy_ip>:<proxy_port>'

文檔: https : //pip.pypa.io/en/stable/user_guide/#using-a-proxy-server

例子:

pip3 install -r requirements.txt --proxy 'http://user:password@192.168.0.1:1234'

例子:

pip install flask --proxy 'http://user:password@192.168.0.1:1234'

代理也可以在 pip.ini 中手動配置。 例子:

[global]
proxy = http://user:password@192.168.0.1:1234 

文檔: https : //pip.pypa.io/en/stable/user_guide/#config-file

這對我有用:

pip --proxy proxy url:port command package

設置以下環境變量: export PIP_PROXY=http://web-proxy.mydomain.com

如果您使用的是 Linux,請以 root 身份:

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 是端口

2022 為 windows:

我知道有很多答案,幾乎所有其他關於pipbehind a proxy問題都指的是這個問題:

所以在我看來,一方面是代理的事情,這在下面的問題中得到了回答。

pip install --proxy=https://<windowsuser>:<pw>@<proxy>:port package

之后你必須處理SSL 證書 您必須添加可信來源。 通常他們站在Error message中。 例如: ERROR: .... host='files.pythonhosted.org'這是我安裝的解決方案,例如Django

pip install Django --proxy http://windowsuser:password@proxy:port --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org

我使用“Fiddler”( https://www.telerik.com/download/fiddler )解決了 Windows 中的 PIP 問題。 下載並安裝后,請執行以下操作:

“規則”=> 單擊“自動驗證”

示例:pip install virtualenv -proxy 127.0.0.1:8888

只需打開您的提示並使用。

https://github.com/pypa/pip/issues/1182搜索“電壓x”(2015年5月22日評論)

對於 Windows 轉到 C:/ProgramData/pip/pip.ini,然后設置

[全球的]

代理 = http://YouKnowTheRest

與您的代理詳細信息。 這將永久配置 pip 的代理。

一個更簡單的方法可能是:

  1. $HOME目錄中創建一個名為“ pip”的文件夾。
  2. 在步驟1中創建的目錄中創建一個名為“ pip.ini”(Windows)或“ pip.conf”(Linux)的文件
  3. 將以下行復制並粘貼到pip.ini / pip.conf下:

     [global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org 
  1. 對於 PIP 安裝:
ex:PORT = 9090
ex:PROXY_SERVER = stackoverflow
USERNAME:your user id
PASSWORD: your password

sudo pip2 install PACKAGENAME --proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/用於 Python2.7

sudo pip3 install PACKAGENAME --proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/用於 Python3.5

例子:

sudo pip2 install pandas --proxy https://USERNAME:PASSWORD@PROXY_SERVER:PORT/
  1. 對於apt-get安裝
sudo http_proxy=http://USERNAME:PASSWORD@PROXY_SERVER:PORT/ apt-get install PACKAGENAME

例子:

sudo http_proxy=http://USERNAME:YOURPASSWORD@PROXY_SERVER:PORT/ apt-get install tensorrt

sudo http_proxy=http://USERNAME:YOURPASSWORD@PROXY_SERVER:PORT/ apt-get update

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM