在虚拟环境中使用代理进行pip安装

时间:2016-06-17 09:25:14

标签: python ubuntu pip virtualenv proxy-server

我在公司的笔记本电脑上使用Ubuntu VM,它使用代理服务器连接到互联网。 经过一些研究后,我发现如何使用代理使用pip install安装模块。例如,使用此命令我可以安装我的virtualenv模块:

sudo pip install --proxy=http://user:pass@<proxy_address>:<portnumber> virtualenv

但是,在创建虚拟环境文件夹后,将其激活,然后使用此pip命令安装模块:

pip install --proxy=http://user:pass@<proxy_address>:<portnumber> pyperclip

我收到此错误:

 Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',))': /simple/pyperclip/

如果我使用sudo,pip可以下载并安装模块,但是在系统全局包中而不是在我的虚拟环境中。对我来说,我的Ubuntu及其代理设置中存在权限问题。

我如何解决这个问题,以便我可以在virtualenv中本地安装模块?

由于

3 个答案:

答案 0 :(得分:4)

同时,我知道解决方案。 pip需要大写字母的环境变量HTTP_PROXYHTTPS_PROXY,而不是http_proxy。 因此,请在您的&#39;〜/ .bashrc&#39;的末尾附加文字图案。

HTTP_PROXY=http://username:pass@proxyaddress:port
export HTTP_PROXY
HTTPS_PROXY=http://username:pass@proxyaddress:port
export HTTPS_PROXY

然后,运行source ~/.bashrc 现在,您可以使用代理登录在Ubuntu VM中使用pip安装所有python包。

答案 1 :(得分:0)

请勿激活virtualenv,并使用您的virtualenv点的完整路径运行pip install --proxy ...命令。

C:\Users\name\myvenv\Scripts\pip install --proxy=http://user:pass@<proxy_address>:<portnumber> virtualenv

答案 2 :(得分:0)

您可能需要退出 virtualenv 并离线安装软件包。下载软件包:

app2

然后进入你的virtualenv,安装包:

pip download -d <path/to/downloads/> {package_name | -r requirements.txt}