如何让 pip 在代理服务器后面工作 [重复]
Posted
技术标签:
【中文标题】如何让 pip 在代理服务器后面工作 [重复]【英文标题】:How to get pip to work behind a proxy server [duplicate] 【发布时间】:2013-10-05 11:56:43 【问题描述】:我正在尝试使用 python 包管理器 pip 来安装一个包,它是来自 Internet 的依赖项。但是我在我的大学里有一个代理,并且已经设置了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 在代理服务器后面工作。
【问题讨论】:
你能在浏览器中浏览到 pypi.python.org 吗? 是的。我可以毫无问题地浏览互联网。我还在 wgetrc 文件中为 wget 配置了代理,wget
似乎正在工作。甚至git
也在使用一些代理配置。但是pip
不断抛出同样的错误。
查看类似问题的答案。 ***.com/questions/11726881/…
【参考方案1】:
pip的代理参数,根据pip --help
,格式为scheme://[user:passwd@]proxy.server:port
您应该使用以下内容:
pip install --proxy http://user:password@proxyserver:port TwitterApi
另外,HTTP_PROXY
环境变量应该受到尊重。
请注意,在早期版本中(无法追踪代码中的更改,抱歉,但文档已更新 here),您必须保留 scheme://
部分才能正常工作,即pip install --proxy user:password@proxyserver:port
【讨论】:
区别在哪里? 其实你要指定(需要协议):pip install --proxy http://user:password@proxyserver:port <package>
就我而言,我必须指定域,如下所示: pip install --proxy DOMAIN\user:password@proxyserver:port ` to avoid terminal char escaping (e.g.
\n`之类的)
显然我的意思是转义`\`,但我现在不能编辑;-)【参考方案2】:
至少对于 pip 1.3.1,它支持 http_proxy 和 https_proxy 环境变量。确保两者都定义,因为它将使用 https 访问 PYPI 索引。
export https_proxy="http://<proxy.server>:<port>"
pip install TwitterApi
【讨论】:
这在 CentOS 上不起作用 在终端上下文中设置 https_proxy 变量后,此选项适用于 Windows 7 中的 git-bash 命令行。【参考方案3】:我知道旧线程,但为了将来参考,--proxy 选项现在通过“=”
例子:
$ sudo pip install --proxy=http://yourproxy:yourport package_name
【讨论】:
【参考方案4】:首先尝试使用以下命令设置代理
SET HTTPS_PROXY=http://proxy.***.com:PORT#
然后尝试使用命令
pip install ModuleName
【讨论】:
当其他解决方案都没有时,这对我有用。使用 Windows 7 专业版 @Plamen,那是因为大多数 pip 存储库都以 https:// 开头所有其他答案都建议使用 http_proxy,但在这种情况下,您已经设置了 https_proxy【参考方案5】:在 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
【讨论】:
您好,用户名和密码是您的企业号吗? @abdoulsn 是你用来登录代理的用户名和密码 是的,谢谢,我成功了。【参考方案6】:至少 pip3 在没有“=”的情况下也可以工作,但是,您可能需要“https”而不是“http”
对我有用的最终命令:
sudo pip3 install --proxy https://proxy:port BINARY
【讨论】:
以上是关于如何让 pip 在代理服务器后面工作 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Anaconda 在 HTTP 代理(不是 https)后面工作?