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

8

我在公司的笔记本电脑上使用Ubuntu虚拟机,并使用代理服务器连接到互联网。 经过一些研究,我找到了如何使用代理安装模块,例如,使用以下命令可以安装virtualenv模块:pip install

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及其代理设置中的权限问题。

我该如何解决这个问题,以便我可以在我的虚拟环境中本地安装模块?

谢谢。


可能是使用pip时的代理意识问题的重复。 - craq
3个回答

8

与此同时,我知道解决方案。 pip 需要环境变量 HTTP_PROXYHTTPS_PROXY 使用大写字母,而不是小写字母 http_proxy。 因此,请在您的 '~/.bashrc' 文件末尾添加以下文本模式:

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包。


无法在我的公司代理内使用。我收到以下错误 -在“ProxyError('Cannot connect to proxy。' OSError('Tunnel connection failed: 407 Proxy Authentication Required',))”之后,进行重试(Retry(total=4, connect=None, read=None, redirect=None))以重新连接:/simple/rasa-core/ - Vini
你使用哪个Ubuntu版本? Ubuntu 16.04的另一个解决方案是在文件“/etc/apt/apt.conf.d/70debconf”中添加代理条目。 Acquire::http::Proxy "http://username:pass@proxyadress:portnumber"; Acquire::https::Proxy "https://username:pass@proxyadress:portnumber"; - ywiyogo
1
谢谢。我现在正在使用CNTLM来绕过公司的代理。 - Vini

2
不要激活虚拟环境,使用虚拟环境pip的完整路径运行pip install --proxy ...命令,例如: C:\Users\name\myvenv\Scripts\pip install --proxy=http://user:pass@<proxy_address>:<portnumber> virtualenv "Original Answer"翻译成"最初的回答"

当我设置虚拟环境后,VS Code 尝试搜索扩展时,这对我很有帮助。 - MichaelHuelsen

0

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

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

然后进入您的虚拟环境,使用以下命令安装软件包:

pip install {package_name| -r requiements.txt} --no-index --find-links <path/to/downloads/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接