如何在身份验证代理后面的窗口上使用pip

问题描述 投票:72回答:9

我的计算机在Windows服务器上运行Windows后面的窗口(使用活动目录),我无法弄清楚如何通过q​​azxswpoi(在python3中)来完成它。我尝试过使用pip,但它仍然只是超时。我也试过设置一个长时间超时(60s),但这没有任何区别。我的代理设置是正确的,我将它们与我在TortoiseHG中成功使用的设置进行了比较以确保。

有没有人知道我可以尝试的任何其他技巧,或者--proxy有关于Windows代理的限制?

更新:我失败的尝试涉及搜索pypi。我刚尝试安装一些东西,但它确实有效。但搜索仍然失败。这是否表示pip中的错误或它们的工作方式不同?

python authentication proxy pip
9个回答
87
投票

我已经尝试了两个选项,这两个选项都适用于我公司的NTLM认证代理。选项1是使用pip

如果你仍然遇到麻烦我会建议安装一个代理身份验证服务(我使用--proxy http://user:pass@proxyAddress:proxyPort)并指向它,就像CNTLM


43
投票

我花了几个小时来计算出来,但我终于让它使用CNTLM工作,然后让它只使用一个pip配置文件。这是我如何使用pip配置文件...

解:

1.在Windows中导航到您的用户配置文件目录(例如C:\ Users \ Sync)并创建名为“pip”的文件夹

2.在此目录中创建名为“pip.ini”的文件(例如C:\ Users \ Sync \ pip \ pip.ini)并在其中输入以下内容:

--proxy http://localhost:3128

用您自己的信息替换[域名],[用户名],[密码],[代理地址]和[代理端口]。

3.此时我能够毫无问题地运行“pip install”。

希望这也适用于其他人!

P.S。:由于您的密码以纯文本格式存储,因此可能会引起安全问题。如果这是一个问题,请考虑使用 [global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org proxy = http://[domain name]%5C[username]:[password]@[proxy address]:[proxy port] 设置CNTLM(允许使用散列密码而不是纯文本)。然后将this articlein设置为上面提到的“pip.ini”文件。


36
投票

我就是这样设置的:

  1. 以管理员身份打开命令提示符(CMD)。
  2. 导出代理设置: proxy = 127.0.0.1:3128 set http_proxy=http://username:password@proxyAddress:port
  3. 安装要安装的软件包: set https_proxy=https://username:password@proxyAddress:port

例如:

pip install PackageName


15
投票

我在Windows 7上遇到了同样的问题。我设法通过在其中创建一个带有“pip.ini”文件的“pip”文件夹来实现它。我将此文件夹放在“C:\ Users \ {my.username} \ AppData \ Roaming”中,因为根据Python文档:

在Windows上,配置文件为%APPDATA%\ pip \ pip.ini

在pip.ini文件中我只有:

Example

所以没有用户名:密码。它工作得很好。


7
投票

我有类似的问题,发现我的公司使用NTLM代理身份验证。如果您在pip.log中看到此错误,则可能是此问题:

无法获取URL [global] proxy = [proxy address]:[proxy port] :HTTP错误407:需要代理身份验证(ISA Server需要授权才能完成请求。拒绝访问Web代理筛选器。)

通过成为中间代理,NTLMaps可用于与NTLM代理服务器连接。

下载NTLMAP,更新包含的server.cfg,运行main.py文件,然后将pip的代理设置指向127.0.0.1:。

我还需要将http://pypi.python.org/simple/pyreadline文件中的这些默认值更改为:

server.cfg

LM_PART:1 NT_PART:1 # Highly experimental option. See research.txt for details. # LM - 06820000 # NT - 05820000 # LM + NT - NTLM_FLAGS: 07820000


1
投票

您可能还会遇到来自代理的证书问题。这里有很多关于如何检索代理证书的答案。

在Windows主机上,要允许pip清除代理,您可能需要设置环境变量,例如:

http://ntlmaps.sourceforge.net/

您也可以使用与PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem 相同的--cert参数。


0
投票

我在远程Windows环境中遇到了同样的问题。我在这里或其他类似的帖子上尝试了很多解决方案,但没有任何效果。最后,解决方案非常简单。我不得不用cmd设置PIP

NO_PROXY

你必须使用双引号并将set NO_PROXY="<domain>\<username>:<password>@<host>:<port>" pip install <packagename> 设置为大写。您还可以将NO_PROXY添加为环境变量,而不是每次使用控制台时都设置它。

如果此处发布的任何其他解决方案有效,我希望这有用。


0
投票

安装cntlm:NO_PROXY

配置cntlm.ini:

用户名ob66759

域名NAM

密码保密

代理proxy1.net:8080

代理proxy2.net:8080

NoProxy localhost,127.0.0。*,10. *,192.168。*

听3128

允许127.0.0.1

#your IP

允许10.106.18.138

启动它:

cntlm -v -c cntlm.ini

现在在cmd.exe中:

pip install --upgrade pip --proxy 127.0.0.1:3128

Cntlm: Fast NTLM Authentication Proxy in C

作品!

您还可以隐藏密码:Collecting pip Downloading https://files.pythonhosted. 44c8a6e917c1820365cbebcb6a8974d1cd045ab4/ 100% |███████████████████████████████ Installing collected packages: pip Found existing installation: pip 9.0.1 Uninstalling pip-9.0.1: Successfully uninstalled pip-9.0.1 Successfully installed pip-10.0.1


0
投票

在我的情况下,当我以管理员身份打开命令提示符(cmd)并且不需要有关代理设置的更多信息时,它可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.