在代理后面使用pip

Rob*_*Rob 271 python proxy pip

我正在尝试在工作中使用代理背后的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

小智 260

与Ubuntu我不能让代理选项所标榜的工作-所以下面的命令并没有工作:

sudo pip --proxy http://web-proxy.mydomain.com install somepackage
Run Code Online (Sandbox Code Playgroud)

但是导出https_proxy环境变量(注意它https_proxy不是http_proxy)就可以了:

export https_proxy=http://web-proxy.mydomain.com
Run Code Online (Sandbox Code Playgroud)

然后

sudo -E pip install somepackage
Run Code Online (Sandbox Code Playgroud)

  • 感谢你在```sudo```命令中包含```-E```,当我想知道为什么程序没有看到我的ENV时,它会不断地抛出我. (32认同)
  • -E添加到sudo为我做了伎俩.它保留了我之前设置的环境变量"http_proxy".谢谢! (11认同)
  • pip --proxy = someproxy-url:端口安装some-package在Win8.1中为我工作,带有pip 6.1.1 (7认同)
  • 同样在这里, - proxy不起作用,我不得不指定两个http_proxy和https_proxy(Debian在公司防火墙后面) (4认同)

k7s*_*per 94

在Windows下不要忘记设置

SET HTTPS_PROXY=<proxyHost>:<proxyPort>
Run Code Online (Sandbox Code Playgroud)

我需要设定什么

pip install pep8
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,但只能以SET HTTPS_PROXY = ht tps:// user:pass @ addr:port [减去我必须添加的空间来保持stackoverflow不会乱码],我不得不替换密码中的特殊字符使用%nn形式的十六进制 (5认同)
  • 调用示例如下:用户名“512893”和密码“pass#h98”的“SET HTTPS_PROXY = https://512893:Pass%23h98@proxy.example.com:6050”。请记住对密码或用户名中的特殊字符进行 url 编码(在本例中为“#”)。也许也尝试设置“HTTP_PROXY”标志。 (2认同)

Ann*_*ang 71

要为Windows设置CNTLM,请按照本文进行操作.对于Ubuntu,请阅读我的博客文章.

编辑:

基本上,要在任何平台中使用CNTLM,您需要设置用户名和散列密码,然后才能http://127.0.0.1:3128用作父代理的代理.

  1. 编辑配置并添加域,用户名,密码和父代理等重要信息.

  2. 生成哈希密码.

    视窗 cntlm –c cntlm.ini –H

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

  3. 从配置中删除纯文本密码,并将其替换为生成的密码.

检查是否有效:

视窗 cntlm –M http://www.google.com

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

有关更详细的说明,请参阅上面的链接.

更新:

为了完整起见,我最近能够在Windows中配置和使用CNTLM.我在Kindle for PC的同步过程中遇到了一个问题,因为我们的代理和安装和配置CNTLM for Windows修复了这个问题.有关详细信息,请参阅我的文章.


Hug*_*dor 59

我没跟我工作.我使用https作品:

pip install --proxy=https://user@mydomain:port somepackage
Run Code Online (Sandbox Code Playgroud)

要进行更新,请添加-U.

  • 如果您需要使用密码:`pip install somepackage --proxy https:// user:password @ mydomain:port` (2认同)

小智 43

您可以通过将公司的根证书添加到site-packages/pip文件夹中的cacert.pem文件来继续使用HTTPS上的pip.然后通过在〜/ pip/pip.conf中添加以下行来配置pip以使用您的代理(如果您在Windows上,则添加〜\ pip\pip.ini):

[global]
proxy = [user:passwd@]proxy.server:port
Run Code Online (Sandbox Code Playgroud)

而已.无需使用第三方软件包或放弃HTTPS(当然,您的网络管理员仍然可以看到您正在做的事情).

  • 有关pip.ini的位置,请参阅https://pip.pypa.io/en/latest/user_guide.html#configuration在Windows中,我在"C:\ Python34\Lib\site-packages\pip\__vendor\requests"中找到了cacert\cacert.pem" (2认同)
  • 这对我有用,但我没有pip.config文件所以我必须在`〜/ .pip/pip.conf`中创建一个然后`export PIP_CONFIG_FILE =/root/.pip/pip.conf`并且我的安装工作正常!谢谢! (2认同)
  • 谢谢,你让我走上了正确的道路!仅供参考,对于Windows 7上的Python 3.7,pip的证书文件显然位于`[Python37]\Lib\site-packages\pip\_vendor\certifi\cacert.pem`.以Base64 .cer格式导出公司的SSL拦截证书,将公钥粘贴到该文件中,并在公司代理后面支持完整的https支持. (2认同)
  • 您在Windows上的pip ini位置可能是`AppData/Roaming/pip/pip.ini` .... (2认同)

nam*_*mit 27

用于窗户; 在命令提示符下设置您的代理
set HTTP_PROXY=domain\username:password@myproxy:myproxyport

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

  • 如果密码有特殊的字符怎么办!和@. (3认同)
  • 我需要设置HTTP_PROXY = http:// username:password @ myproxy:myproxyport set HTTPS_PROXY = https:// username:password @ myproxy:myproxyport (3认同)

小智 26

这对我有用(在Windows上通过CMD):

pip install --proxy proxyserver:port requests
Run Code Online (Sandbox Code Playgroud)


小智 21

$ pip --proxy http://proxy-host:proxy-port install packagename
Run Code Online (Sandbox Code Playgroud)

这对我有用

  • 当仅暂时在代理后面时,这非常有用.我还必须在语法中添加我的用户名和密码:`pip --proxy http:// username:password @ proxy-host:proxy-port install <package>` (4认同)

bba*_*iee 14

根据我们的安全策略,我可能不会使用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"
Run Code Online (Sandbox Code Playgroud)

  • 这不再起作用了.PyPi现在会自动转发到https. (2认同)
  • 我认为@bbaassssiiee可能会说他的pip(在2013年)破坏了HTTPS,因为他的公司代理重写所有证书以使用他们自己的根证书(因此他们可以解密所有SSL流量)并且pip未通过证书验证.当然在2017年,当使用--proxy时,pip会自动避免证书检查.许多企业代理已经有效地将您的所有流量更改为非SSL,因为即使在导航到SSL站点时,您也通过非SSL HTTP代理进行代理. (2认同)

小智 13

打开Windows命令提示符.

设置代理环境变量.

set http_proxy=http://user:password@proxy_ip:port
set https_proxy=https://user:password@proxy_ip:port
Run Code Online (Sandbox Code Playgroud)

在同一Windows命令提示符下使用代理安装Python包.

pip install --proxy="user:password@proxy_ip:port" package_name
Run Code Online (Sandbox Code Playgroud)


小智 12

在Windows 7中:

pip install --proxy DOMAIN\user:password@proxyaddress:port package
Run Code Online (Sandbox Code Playgroud)

即:

pip install --proxy BR\neo:p4ssw0rd@myproxyrocks.com.br:8080 virtualenv
Run Code Online (Sandbox Code Playgroud)


Tom*_*ell 11

手机作为移动热点/ USB网络共享

如果我在通过公司代理寻找方法时遇到很多麻烦,我会通过手机连接到网络(如果我有无线热线,如果没有wifi连接线,则可以快速连接)pip install.

可能不适用于所有设置,但应该让大多数人在紧要关头.


小智 8

在Ubuntu 14.04 LTS中

   sudo pip --proxy http://PROXYDOM:PROXYPORT install package
Run Code Online (Sandbox Code Playgroud)

干杯


Joh*_*uet 7

我有同样的问题:在工作中使用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
Run Code Online (Sandbox Code Playgroud)

这对我有用.希望这会帮助你.


nca*_*tro 6

我可以通过运行以下命令来实现:

pip install --proxy=http://user:pass@your.proxy.com:3128 package==version
Run Code Online (Sandbox Code Playgroud)

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


mkk*_*wat 5

在"高级系统设置"中设置环境变量.在命令提示符中,它应该像这样:

C:\ Windows\system32> echo%http_proxy%

HTTP://用户名:@ passowrd代理:端口

C:\ Windows\system32> echo%https_proxy%

HTTP://用户名:密码@代理:端口

以后,Simply pip install whatEver应该工作.


Nik*_*nko 5

如果你想通过代理升级pip,可以使用(例如在Windows中):

python -m pip --proxy http://proxy_user:proxy_password@proxy_hostname:proxy_port insta
ll --upgrade pip
Run Code Online (Sandbox Code Playgroud)