Entornos opresivos(3)

Me quejaba hace poco, en términos generales, de las dificultades que las políticas de seguridad generan para los desarrolladores. Siendo ahora un poco más específico describo el caso muy particular que me topé al tratar de hacer uso del administrador por defecto de paquetes de Python, conocido como pip en uno de esos entornos. Al final una experiencia más de aprendizaje.

Cualquier «pythonista» entenderá que después de descargar e instalar Python en el equipo de trabajo, lo siguiente es hacerse de los paquetes necesarios. Usualmente solemos pensar que si pudimos descargar e instalar la distribución de Python, lo que sigue no debería tener problemas. Sin embrago, en mi caso me topé con el siguiente problema.

PS C:\Users\...\Projects> pip install virtualenv

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x000001C3C699C880>, 'Connection to pypi.org timed out. (connect timeout=15)')': /simple/virtualenv/

...

Tras buscar por algunas respuestas, pensando en que esto pudiera deberse a una política de seguridad, encontré que el problema se debía a estar detrás de un proxy corporativo. Si bien pude encontrar información1 sobre como hacer que pip funcionara detrás de un proxy, debía primero determinar los datos del proxy. Para esto, hay dos formas, vía la GUI Control Panel > Network and Internet > Internet Options

seleccionar la pestaña de conexiones, y LAN Settings.

En el diálogo que aparezca dar clic en el botón Advanced y ahí obtener los datos de la conexiones normal y segura.

Para un caso como donde el proxy server no está indicado sino que se depende de un script de configuración, se puede copiar el URL del script, pegarlo en el browser y, ya sea descargando el archivo o viéndolo directamente en el navegador, buscar los datos necesarios.

Una segunda alternativa consiste en buscar estos datos desde el Registry del equipo.

PS C:\Users\...\Downloads> reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | find /i """proxyserver"""

Finalmente, una vez que se tengan estos datos se procede a declarar dos variables:

$env:HTTP_PROXY = http://[username]:[password]@[proxy_address]:[port_number]
$env:HTTPS_PROXY = http[s]://[username]:[password]@[proxy_address]:[port_number]

Es importante hacer notar que para la variable HTTPS_PROXY, puede requerir que el URL sea declarado como «https://» o «http://», así como puede o no requerirse declarar el puerto usado. Debe probarse para ver cual opción funciona.

AnteriorSiguiente

Referencias

  1. James Triveri, «Using pip behind a Web Proxy«, GitHib Gist, web. Visited: 2021.07.21. URL: https://gist.github.com/jtrive84/48f0f8d3ca24db053b0daf4142fc8f8a.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.