问题描述:
在conda创建的python环境中使用pip安装库文件时,报了连接不上清华源的错
因为我并没有使用代理,同时其他同事在同一个网络环境下也可以正常使用,所以排除外部问题,大概率是电脑中的某个设置被改变了造成了这一现象。
解决过程
1. 使用其他源
切换使用阿里云源后依然报错
2. 详细解释报错
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000022B57B6A6E0>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))': /pypi/simple/pymysql/
- Retrying: 这是一个警告,表明系统正在重试连接。这种机制通常用于网络请求,以应对临时的连接问题。
- Retry(total=4, connect=None, read=None, redirect=None, status=None): 这部分信息表明这是第几次重试。在这个例子中,总共重试了5次。
- Connection broken by 'ProxyError': 连接被
ProxyError
中断。这表明在使用代理服务器时出现了问题。 - 'Cannot connect to proxy.': 无法连接到代理服务器。
- NewConnectionError: 这是一个特定的错误类型,表示尝试建立新连接时失败。
- '<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000024FB9475460>': 这是导致错误的连接对象,位于内存地址
0x0000024FB9475460
。 - Failed to establish a new connection: 无法建立新的连接。
- [WinError 10061]: 这是Windows系统特有的错误代码,表示无法连接到目标计算机,因为该计算机主动拒绝连接。
- 由于目标计算机积极拒绝,无法连接。: 这是对
WinError 10061
的中文解释,表明目标计算机(代理服务器)拒绝了连接请求
可能的原因
- 代理服务器配置错误: 代理服务器的地址或端口可能配置错误。
- 代理服务器未运行: 代理服务器可能未启动或暂时不可用。
- 网络问题: 网络连接问题可能导致无法连接到代理服务器。
- 防火墙设置: 防火墙可能阻止了对代理服务器的访问。
解决方法
- 检查代理配置: 确认代理服务器的地址和端口是否正确。
- 检查代理服务器状态: 确认代理服务器正在运行并且可以接受连接。
- 网络连接: 确认你的网络连接正常,并且没有被防火墙或其他安全软件阻止。
- 直接连接: 如果可能,尝试在不使用代理的情况下直接连接,以确定问题是否出在代理服务器上。
通过编写python脚本检查和解决问题:
# 检查当前代理配置
import os
print(os.environ.get('http_proxy'))
print(os.environ.get('https_proxy'))
# 检查是否可以直接连接
import requests
try:
response = requests.get('https://www.example.com')
print(response.status_code)
except requests.exceptions.RequestException as e:
print(e)
运行结果
从程序输出结果来看,当前没有配置任何代理(http_proxy
和https_proxy
均为None
),但仍然在尝试通过代理(127.0.0.1:7890
)进行连接。这里的问题似乎是系统或某个应用程序默认配置了代理,但是该代理不可用或配置错误。
3. 检查系统代理配置:
-
在 Windows 上,检查 Internet 选项中是否配置了代理。但是并没有
-
打开“控制面板” -> “网络和 Internet” -> “Internet 选项” -> “连接” -> “局域网设置”,查看是否设置了代理服务器。发现代理服务器被打了勾,将这个勾去掉就可以工作了。
重新安装库后可以正常使用。