如何通过代理安装 PIP 包?

How to install PIP packages through a proxy?

我有没有互联网连接的 RHEL 8 服务器,并且服务器安装了 jupyter notebook。我需要在那里安装 exchangelib 模块。由于服务器没有任何互联网连接,我无法做到这一点。所以我开始创建如下代理。

http_proxy  = "http://10.11.111.11:3128"
https_proxy = "https://10.11.111.11:3128"
ftp_proxy   = "ftp://10.11.111.11:3128"

proxyDict = { 
              "http"  : http_proxy, 
              "https" : https_proxy, 
              "ftp"   : ftp_proxy
            }

# setting up the URL and checking the connection by printing the status

url = 'https://www.google.lk'
page = requests.get(url, proxies=proxyDict)
print(page.status_code)
print(page.url) 

以下代码输出结果如下

200
https://www.google.lk

所以我可以使用它连接到互联网。但是在那之后我不知道如何安装 pip 包。有人可以指导我吗?

你不应该使用 pip as a library。 pip 项目建议将其与子流程调用一起使用。

subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'my_package'])

然后对于代理,您可以向其添加 --proxy 标志。 This Whosebug 的答案很好地说明了这一点。但要完成答案,它应该是这样的,

subprocess.check_call([
    sys.executable, 
    '-m',
    'pip',
    'install',
    '--proxy',
    'http://10.11.111.11:3128',
    'my_package'
])