我正在尝试在工作中使用代理后面的 pip。
this post 的答案之一建议使用 CNTLM。我按照 this other post 安装和配置它,但运行 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 是否设置正确,或者是否有另一种解决方法?我知道您也可以按照 here 的描述设置 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
SET HTTPS_PROXY=username:password@<proxyHost>:<proxyPort>
,但它不起作用。
SET HTTPS_PROXY = https://512893:Pass%23h98@proxy.example.com:6050
用于用户名 512893
&密码 pass#h98
。请记住对密码或用户名中的特殊字符进行 url 编码(在本例中为 #
)。也许也尝试设置 HTTP_PROXY
标志。
要为 Windows 设置 CNTLM,请遵循此 article。对于 Ubuntu,请阅读 my blog post。
编辑:
基本上,要在任何平台上使用 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。由于我们的代理,我在 Kindle for PC 的同步过程中遇到了一个问题,安装和配置 CNTLM for Windows 为我解决了这个问题。有关详细信息,请参阅 my article。
--trusted-host pypi.python.org
运行 pip,这对我有用。
它不适合我。我不得不在工作中使用 https:
pip install --proxy=https://user@mydomain:port somepackage
为了更新,添加 -U。
pip install somepackage --proxy https://user:password@mydomain:port
user
,那可能是因为没有放什么:pip install --proxy=https://mydomain:port somepackage
您可以通过将您公司的根证书添加到您的 site-packages/pip 文件夹中的 cacert.pem 文件来继续通过 HTTPS 使用 pip。然后通过将以下行添加到 ~/pip/pip.conf(或 ~\pip\pip.ini,如果您在 Windows 上)来配置 pip 以使用您的代理:
[global]
proxy = [user:passwd@]proxy.server:port
而已。无需使用第三方软件包或放弃 HTTPS(当然,您的网络管理员仍然可以看到您在做什么)。
~/.pip/pip.conf
然后在 export PIP_CONFIG_FILE=/root/.pip/pip.conf
中创建一个,我的安装成功了!谢谢!
[Python37]\Lib\site-packages\pip\_vendor\certifi\cacert.pem
。以 Base64 .cer 格式导出您公司的 SSL 拦截证书,将公钥粘贴到该文件中,然后瞧,公司代理后面的完整 https 支持。
AppData/Roaming/pip/pip.ini
....
窗户;在命令提示符中将您的代理设置为
set HTTP_PROXY=domain\username:password@myproxy:myproxyport
示例:set http_proxy=IND\namit.kewat:xl123456@192.168.180.150:8880
这对我有用(通过 CMD 在 Windows 上):
pip install --proxy proxyserver:port requests
$ pip --proxy http://proxy-host:proxy-port install packagename
这对我有用
pip --proxy http://username:password@proxy-host:proxy-port install <package>
根据我们的安全政策,我可能不会将 https 与 pypi 一起使用,SSL-inspection 会重写证书,它会破坏 pip 对 www.python.org 的内置安全性。中间的人是网络管理员。
所以我需要使用普通的http。为此,我需要覆盖系统代理以及默认的 pypi:
bin/pip install --proxy=squidproxy:3128 -i http://www.python.org/pypi --upgrade "SQLAlchemy>=0.7.10"
Security
有四个音节。对特朗普来说太多了。
手机作为移动热点/USB 网络共享
如果我很难通过公司代理找到方法,我会通过手机连接到网络(如果我有 wifi,则为无线热点,如果没有,则使用 USB 系绳)并快速执行 pip install
。
可能不适用于所有设置,但应该让大多数人在紧要关头。
打开 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
在 Ubuntu 14.04 LTS 中
sudo pip --proxy http://PROXYDOM:PROXYPORT install package
干杯
我遇到了同样的问题:在工作中使用身份验证的公司代理后面,我无法使用 pip 以及 Sublime Text 2(嗯,它与我的代理设置的自定义设置一起使用)。对于 pip(我将在 git 上尝试),我解决了安装 cntlm 代理的问题。配置非常简单:
编辑 cntlm.ini 编辑“用户名”、“域”、“密码”字段 添加“代理”行,使用您的代理设置: server:port 确保“NoProxy”行集成了“localhost”(默认情况下) 注意默认端口:3128 保存,就是这样。
要测试它是否有效,只需启动一个新的命令行工具,然后尝试:
pip install django --proxy=localhost:3128
这对我有用。希望这会帮助你。
在高级系统设置中设置环境变量。在命令提示符下,它的行为应该是这样的:
C:\Windows\system32>echo %http_proxy% http://username:passowrd@proxy:port C:\Windows\system32>echo %https_proxy% http://username:password@proxy:port
稍后,Simply 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"**
在具有身份验证的工作代理后面使用 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
export http_proxy
)。考虑解决问题并更新您的答案,以便它提供解决方案。
如果您通过代理连接到 Internet,则运行某些命令可能会出现问题。
在命令提示符下设置代理配置的环境变量如下:
set http_proxy=http://username:password@proxyserver:proxyport
set https_proxy=https://username:password@proxyserver:proxyport
在 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
实际上我从来没有遇到过它不起作用的情况。对于某些系统,您需要成为 root(sudo 是不够的)。
警告,“pip search”命令有一些不好的地方。搜索命令不使用代理设置,无论其传递方式如何。
我试图找出问题只尝试“搜索”命令,并发现这篇文章详细解释了该错误:https://github.com/pypa/pip/issues/1104
我可以用 python 2.7.9 在 Debian 8 上用 pip 1.5.6 确认该错误仍然存在。 “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。
只在本地做怎么样?您很可能可以通过浏览器从 https 源下载
下载你的模块文件(mysql-connector-python-2.0.3.zip /gz...等)。解压它并转到 setup.py 所在的解压目录并调用:C:\mysql-connector-python-2.0.3>python.exe setup.py install
这对我有用:
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 适用于窗户:
我知道有很多答案,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 搜索“voltagex”(2015 年 5 月 22 日评论)
-E
包含在sudo
命令中,当我想知道为什么程序没有看到我的 ENV 时,它不断地抛出我。