如何让pip在代理服务器后面工作

时间:2013-09-29 16:23:23

标签: python proxy pip

我正在尝试使用python包管理器pip来安装包,它是来自互联网的依赖项。但是我在我大学的代理服务器后面并且已经设置了http_proxy环境变量。但是当我尝试安装这样的包时:

pip install TwitterApi

我在日志文件中收到此错误:

Getting page http://pypi.python.org/simple/TwitterApi
Could not fetch URL http://pypi.python.org/simple/TwitterApi: <urlopen error [Errno 111] Connection refused>
Will skip URL http://pypi.python.org/simple/TwitterApi when looking for download links for TwitterApi
Getting page http://pypi.python.org/simple/
Could not fetch URL http://pypi.python.org/simple/: <urlopen error [Errno 111] Connection refused>

我甚至试着像这样明确地设置我的代理变量:

pip install --proxy http://user:password@proxyserver:port TwitterApi

但我仍然得到同样的错误。如何让pip在代理服务器后面工作。

7 个答案:

答案 0 :(得分:80)

根据pip --help,pip的代理参数的格式为scheme://[user:passwd@]proxy.server:port

您应该使用以下内容:

pip install --proxy http://user:password@proxyserver:port TwitterApi

此外,应尊重HTTP_PROXY env var。

请注意,在早期版本中(无法跟踪代码中的更改,抱歉,但文档已更新here),您必须将scheme://部分保留为它起作用,即pip install --proxy user:password@proxyserver:port

答案 1 :(得分:23)

至少对于pip 1.3.1,它尊重http_proxy和https_proxy环境变量。确保定义两者,因为它将使用https访问PYPI索引。

export https_proxy="http://<proxy.server>:<port>"
pip install TwitterApi

答案 2 :(得分:13)

旧线程,我知道,但为了将来参考,现在使用“=”传递--proxy选项

示例:

std::vector<int>

答案 3 :(得分:5)

首先尝试使用以下命令设置代理

SET HTTPS_PROXY=http://proxy.***.com:PORT#

然后尝试使用命令

pip install ModuleName

答案 4 :(得分:3)

在Ubuntu上,您可以使用

设置代理
export http_proxy=http://username:password@proxy:port
export https_proxy=http://username:password@proxy:port

或者如果您使用了SOCKS错误

export all_proxy=http://username:password@proxy:port

然后运行pip

sudo -E pip3 install {packageName}

答案 5 :(得分:2)

至少pip3也可以不用“=”,但是,你可能需要“https”来代替“http”

最终命令,对我有用:

sudo pip3 install --proxy https://{proxy}:{port} {BINARY}

答案 6 :(得分:-1)

如果您使用的是Windows,则可以尝试在Internet Explorer中配置代理 - &gt;选项 - &gt;连接 - &gt;局域网设置 - &gt;代理服务器。它将影响全球系统。