![](/img/trans.png)
[英]How can I build a Dockerfile in finch when sitting behind a proxy and using cntlm as local proxy?
[英]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
作為父代理的代理之前,您需要設置您的用戶名和散列密碼。
編輯配置並添加重要信息,如域、用戶名、密碼和父代理。
生成散列密碼。
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/
有關更詳細的說明,請參閱上面的鏈接。
更新:
為了完整起見,我最近能夠在 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
如果我在通過公司代理找到方法時遇到很多麻煩,我會通過我的手機連接到網絡(如果我有 wifi,則為無線熱點,如果沒有,則使用 USB 系繩)並進行快速pip install
。
可能不適用於所有設置,但應該讓大多數人在緊要關頭。
在 Ubuntu 14.04 LTS 中
sudo pip --proxy http://PROXYDOM:PROXYPORT install package
干杯
我遇到了同樣的問題:在帶有 auth 工作的公司代理后面,我無法使用 pip 以及 Sublime Text 2(嗯,它與我的代理設置的自定義設置一起使用)。 對於 pip(我會在 git 上嘗試),我通過安裝 cntlm 代理解決了這個問題。 配置非常簡單:
server:port
要測試它是否有效,只需啟動一個新的命令行工具,然后嘗試:
pip install django --proxy=localhost:3128
那對我有用。 希望這會幫助你。
在高級系統設置中設置環境變量。 在命令提示符下,它的行為應該是這樣的:
C:\\Windows\\system32>echo %http_proxy%
http://username:passowrd@proxy:port
C:\\Windows\\system32>echo %https_proxy%
后來,只需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 源下載
提取它並轉到 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/simple
但pip
的錯誤沒有告訴你。
我也不是這方面的專家,但我通過在 ~/.bashrc 文件中設置all_proxy
變量使其工作。 要打開~/.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。
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
這對我有用:
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:
我知道有很多答案,幾乎所有其他關於pip
和behind 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,然后設置
[全球的]
與您的代理詳細信息。 這將永久配置 pip 的代理。
一個更簡單的方法可能是:
$HOME
目錄中創建一個名為“ pip”的文件夾。 將以下行復制並粘貼到pip.ini / pip.conf下:
[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org
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/
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.