我的计算机在Windows服务器上运行Windows后面的窗口(使用活动目录),我无法弄清楚如何使用pip
(在python3中)完成它。我尝试过使用--proxy
,但它仍然只是超时。我也试过设置一个长时间超时(60s),但这没有任何区别。我的代理设置是正确的,我将它们与我在TortoiseHG中成功使用的设置进行了比较以确保。
有没有人知道我可以尝试的其他技巧,或pip
有关于Windows代理的限制吗?
更新:我失败的尝试涉及搜索pypi。我刚尝试安装一些东西,但它确实有效。但搜索仍然失败。这是否表示pip
中的错误或它们的工作方式不同?
答案 0 :(得分:87)
我尝试了两个选项,这些选项都适用于我公司的NTLM身份验证代理。
选项1是使用--proxy http://user:pass@proxyAddress:proxyPort
如果您仍然遇到问题,我建议安装代理身份验证服务(我使用CNTLM)并指向pip,例如--proxy http://localhost:3128
答案 1 :(得分:42)
花了我几个小时来弄明白这一点,但我终于让它使用CNTLM工作,然后让它只使用一个pip配置文件。以下是我如何使用pip配置文件...
<强>解决方案:强>
1。在Windows中导航到您的用户个人资料目录(例如C:\ Users \ Sync)并创建一个名为&#34; pip &#34的文件夹;
2. :创建名为&#34; pip.ini &#34;的文件在此目录中(例如C:\ Users \ Sync \ pip \ pip.ini)并在其中输入以下内容:
[global]
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org
proxy = http://[domain name]%5C[username]:[password]@[proxy address]:[proxy port]
替换 [域名] , [用户名] , [密码] , [代理地址] , [代理端口] ,包含您自己的信息。
3。此时我能够运行&#34; pip install &#34;没有任何问题。
希望这也适用于其他人!
P.S。:由于您的密码以纯文本格式存储,因此可能会引起安全问题。如果这是一个问题,请考虑使用this article设置CNTLM(允许使用散列密码而不是纯文本)。然后在&#34; pip.ini&#34;中设置proxy = 127.0.0.1:3128
。上面提到的文件。
答案 2 :(得分:35)
这是我设置它的方式:
答案 3 :(得分:15)
我在Windows 7上遇到了同样的问题。我设法通过创建一个&#34; pip&#34;带有&#34; pip.ini&#34;的文件夹里面的文件。我将此文件夹放在&#34; C:\ Users \ {my.username} \ AppData \ Roaming&#34;中,因为根据Python文档:
在Windows上,配置文件为%APPDATA%\ pip \ pip.ini
在pip.ini文件中我只有:
[global]
proxy = [proxy address]:[proxy port]
所以没有用户名:密码。它运作得很好。
答案 4 :(得分:1)
您可能还会遇到来自代理的证书问题。这里有很多关于如何检索代理证书的答案。
在Windows主机上,要允许pip清除代理,您可能需要设置一个环境变量,例如:
PIP_CERT=C:\path\to\certificate\file\in\pem\form\myproxycert.pem
您也可以将--cert
参数用于PIP
,结果相同。
答案 5 :(得分:1)
Windows10及更高版本上的相同问题对我不起作用。
使用cygwin
之类的仿真器控制台工具,然后以默认的Linux方式进行操作:
export http_proxy=<proxy>
export https_proxy=<proxy>
pip install <package>
一切正常。
答案 6 :(得分:0)
我在远程Windows环境中遇到了同样的问题。我在这里或其他类似的帖子上尝试了很多解决方案,但没有任何效果。最后,解决方案非常简单。我必须使用cmd:
设置NO_PROXY
set NO_PROXY="<domain>\<username>:<password>@<host>:<port>"
pip install <packagename>
您必须使用双引号并将NO_PROXY
设置为大写。您还可以将NO_PROXY
添加为环境变量,而不是每次使用控制台时都设置它。
如果此处发布的任何其他解决方案有效,我希望这会有所帮助。
答案 7 :(得分:0)
安装cntlm:Cntlm: Fast NTLM Authentication Proxy in C
配置cntlm.ini:
用户名ob66759
域名NAM
密码密码
Proxy 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
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
作品!
您还可以隐藏密码:https://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/
答案 8 :(得分:0)
就我而言,当我仅以管理员身份打开命令提示符(cmd)时就可以使用,并且不需要有关代理设置的更多信息。
答案 9 :(得分:0)
尝试对域和用户之间的反斜杠进行编码
pip --proxy https://domain%5Cuser:password@proxy:port install -r requirements.txt
答案 10 :(得分:0)
对我来说,问题出在conda环境中。它很可能使用了conda环境中的pip命令(“ where pip”指向conda环境)。通过--proxy设置代理设置或设置http_proxy都没有帮助。
相反,只需打开一个新的CMD并在那里进行“ pip安装”就可以了。