【Python】已完美解决:WARNING: The repository located at mirrors .aliyun.com is not a trusted or secure host

简介: 【Python】已完美解决:WARNING: The repository located at mirrors .aliyun.com is not a trusted or secure host

标题: 解决 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),导致软件包被篡改或拦截。

二、可能出错的原因

  1. 使用了错误的源地址,即该地址没有提供 HTTPS 服务。
  2. 本地 pip.conf 或环境变量中配置了非 HTTPS 的源。
  3. 暂时性的网络问题导致 HTTPS 连接失败,pip 回退到 HTTP。

三、错误代码示例

假设你在 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/

四、正确代码示例(结合实战场景)

  1. 使用 HTTPS 源

首先,尝试找到该源的 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 主机。

  1. 临时允许非 HTTPS 源(不推荐)

如果你确定要忽略这个警告并继续使用非 HTTPS 源(这通常不推荐,除非你完全信任该源),你可以在命令行中添加 -trusted-host 参数:

pip install -i http://mirrors.aliyun.com/pypi/simple/ some-package --trusted-host mirrors.aliyun.com

五、注意事项

  1. 始终优先使用 HTTPS 源来安装 Python 包,以保证软件包的完整性和安全性。
  2. 如果你管理的是团队或组织的环境,确保所有成员都了解并使用安全的源。
  3. 定期检查并更新你的 pip.conf 文件或命令行参数,以确保它们指向正确的源。
  4. 如果你在使用企业内部的私有仓库,确保它支持 HTTPS 并配置了正确的证书。

目录
相关文章
|
4月前
|
Python
【Python】已解决:re.error: bad escape \z at position 4
【Python】已解决:re.error: bad escape \z at position 4
295 0
|
4月前
|
Linux 网络安全 开发者
【Python】已解决:WARNING: pip is configured with locations that require TLS/SSL, however the ssl module i
【Python】已解决:WARNING: pip is configured with locations that require TLS/SSL, however the ssl module i
930 3
|
4月前
|
数据安全/隐私保护 Python
【Python】已解决:WARNING: Ignoring invalid distribution -addlepaddle (d:\soft\python36\lib\site-packages)
【Python】已解决:WARNING: Ignoring invalid distribution -addlepaddle (d:\soft\python36\lib\site-packages)
953 1
|
4月前
|
自然语言处理 开发者 Python
【Python】已解决:WARNING: Discarding https://pypi.tuna.tsinghua.edu.cn/packages/74/2b/3584369fad8352ed171
【Python】已解决:WARNING: Discarding https://pypi.tuna.tsinghua.edu.cn/packages/74/2b/3584369fad8352ed171
55 1
|
4月前
|
iOS开发 MacOS Python
【Python】已解决:(Pycharm切换Python版本后报错)No Python at “C:\Program Files\Python39\python.exe”
【Python】已解决:(Pycharm切换Python版本后报错)No Python at “C:\Program Files\Python39\python.exe”
302 0
【Python】已解决:(Pycharm切换Python版本后报错)No Python at “C:\Program Files\Python39\python.exe”
|
4月前
|
Python
【Python】已解决:(cmd进入Python环境报错)No Python at ‘C:\Users…\Python\Python39\python.exe’
【Python】已解决:(cmd进入Python环境报错)No Python at ‘C:\Users…\Python\Python39\python.exe’
700 0
|
4月前
|
监控 Python
【Python】已解决:requests.exceptions.ConnectTimeout: HTTPConnectionPool(host=‘123.96.1.95’, port=30090)
【Python】已解决:requests.exceptions.ConnectTimeout: HTTPConnectionPool(host=‘123.96.1.95’, port=30090)
228 0
|
4月前
|
安全 网络协议 网络安全
【Python】已解决:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool (host=’ files. pyth
【Python】已解决:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool (host=’ files. pyth
396 0
|
4月前
|
监控 开发者 Python
【Python】已解决:WARNING: This is a development server. Do not use it in a production deployment. Use a p
【Python】已解决:WARNING: This is a development server. Do not use it in a production deployment. Use a p
812 0
|
4月前
|
Shell Linux 网络安全
【Python】已完美解决:(pip提示升级)WARNING: There was an error checking the latest version of pip.,
【Python】已完美解决:(pip提示升级)WARNING: There was an error checking the latest version of pip.,
468 0