De SSLEOFError a configuración correcta
Este artículo es una reescritura del registro de problemas ProxyError de Python
Después de arreglar la autenticación SSL de pip hace unos días, encontré un SSLError ( SSLEOFError(8, 'EOF ocurrió en violación del protocolo (_ssl.c:1129')))
Después de una serie de consultas relacionadas con SSL, encontré el error. c:1129)'))
Después de una serie de consultas y pruebas, el motivo es que la propia biblioteca urllib de Python no configura correctamente el proxy HTTPS
El proxy HTTP(S) mencionado anteriormente Es un servidor proxy que reenvía tráfico HTTP (S) a través del servidor proxy. En este artículo se llamará protocolo de salida.
La comunicación con el servidor proxy requiere un protocolo, que está representado por. la línea verde en la figura anterior. Este artículo se llamará protocolo de ingreso
Los protocolos de ingreso suelen ser protocolos HTTP y SIP, pero los más utilizados son HTTP y SIP. HTTP y Socks4/Socks5 son los protocolos más utilizados, mientras que HTTPS rara vez se utiliza como protocolo de conexión con servidores proxy, lo que también es el principal motivo de errores anteriores
Por lo tanto, no hay diferencia entre el ingreso protocolo y el protocolo de salida Hay una conexión causal.
Su protocolo de importación admite ProxyServer en el directorio de configuración, que se usa para configurar la dirección y el puerto del servidor proxy, y si se debe usar ProxyEnable para habilitar el proxy
Cuando se configura CFW el servidor proxy, solo se proporcionan la dirección y el puerto, pero no se proporciona el protocolo de importación
De acuerdo con la lógica fuente de la biblioteca urllib proporcionada anteriormente
Esto conduce a una serie de errores en paquetes de software de capa superior (como pip y request) El proxy https://127.0.0.1:7890 se usó incorrectamente y CFW no admite el protocolo de ingreso HTTPS en absoluto
Le recomiendo que use https://127.0 según el protocolo de entrada admitido por la herramienta que está utilizando el proxy 0.1:7890. Le recomiendo que modifique la lógica fuente de la biblioteca urllib de acuerdo con el protocolo de importación admitido por su herramienta favorita (el archivo generalmente se encuentra en ***/python3.*/urllib/request.py o ***/anaconda3/Lib/urllib /request.py )
O simplemente siga estas instrucciones (que pueden no aplicarse en todos los casos)
O simplemente siga estas instrucciones (que pueden no aplicarse en todos los casos).