标题: 解决 Python pip 安装时遇到的“非受信任或安全主机”警告
在使用 Python 的 pip 包管理器安装或更新库时,有时会遇到这样的警告信息:
WARNING: The repository located at mirrors.aliyun.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with '-trusted-host mirrors.aliyun.com'.
这个警告意味着 pip 试图从一个非 HTTPS 的源(在这个例子中是 mirrors.aliyun.com)安装软件包,但出于安全考虑,pip 默认只信任 HTTPS 源。这是因为 HTTP 通信在传输过程中可能被中间人攻击(MITM),导致软件包被篡改或拦截。
假设你在 pip.conf 或直接在命令行中使用了非 HTTPS 的源,如下:
pip install -i http://mirrors.aliyun.com/pypi/simple/ some-package
或者,在 pip.conf 文件中可能有类似下面的配置:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
首先,尝试找到该源的 HTTPS 版本。对于阿里云镜像,通常 HTTPS 地址是 https://mirrors.aliyun.com/pypi/simple/。修改命令行或 pip.conf 文件中的源地址。
命令行示例:
pip install -i https://mirrors.aliyun.com/pypi/simple/ some-package
pip.conf 文件示例(通常在用户家目录下的 .pip/pip.conf 或系统级的 /etc/pip.conf):
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
注意,在 pip.conf 中还添加了 trusted-host,这是为了明确告诉 pip 信任这个特定的主机,即使它不是默认的受信任 HTTPS 主机。
如果你确定要忽略这个警告并继续使用非 HTTPS 源(这通常不推荐,除非你完全信任该源),你可以在命令行中添加 -trusted-host 参数:
pip install -i http://mirrors.aliyun.com/pypi/simple/ some-package --trusted-host mirrors.aliyun.com