问题:在打开科学上网软件的前提下,pip安装python库失败
一、报错展示
错误描述:在使用科学上网之后,
conda install
和pip install
均不能使用
二、解决方案
2.1 关闭电脑上的代理服务
这中方法最直观有效,但是很烦,每次搜索安装模块都需要关闭代理
2.2 设置http类型的源
conda: 编辑
.condarc
文件,文件目录:C:\Users\你的用户名\
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
ssl_verify: true
show_channel_urls: true
pip:编辑
pip.ini
文件,文件目录:C:\Users\你的用户名\pip\
ps:如果没有pip目录,手动创建pip目录,在目录下添加pip.ini文件
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com
问题根源
3.1 问题的根源
- 代理服务器只支持HTTP(不确定是XX的锅还是windows的锅),且pip安装库时使用的urllib3在以前也就是低版本的时候是不支持HTTPS的,这样一来,尽管我们的源可能是HTTPS的,比如阿里源https://mirrors.aliyun.com/pypi/simple/,但走的还是HTTP,这正称了代理服务器的心,因此工作起来没有问题。
- 后来也就是新版本的urllib3支持HTTPS了,但代理服务器不支持,这时候就出问题了:pip通过HTTPS去找代理,但由于代理服务器只支持HTTP,没法处理请求,因此在ssl握手阶段就出错了(连接不上代理)。
- 关于2.3节的做法为什么没有效,是因为通过--proxy或配置文件所作的代理设置没有被更正到urllib的request。
原文链接:https://blog.csdn.net/gzxb1995/article/details/119084974