Cómo utilizar pip con proxies

Configure proxies con pip para eludir restricciones, mejorar la seguridad y agilizar la gestión de paquetes.
13 min de lectura
How to Use Pip with Proxies blog image

En este artículo, usted aprenderá cómo configurar y utilizar proxies con pip para la gestión de paquetes sin problemas en redes restringidas.

Diferencias entre representantes públicos y privados

A la hora de elegir un apoderado, es importante determinar si será público o privado.

Apoderados públicos

Los proxies públicos están abiertos a cualquiera y a menudo carecen de autenticación. Aunque pueden proporcionar un acceso rápido a una dirección IP, tienen sus desventajas: velocidades más lentas, conexiones inestables y posibles bloqueos de IP. Debido a que son gratuitos y están ampliamente disponibles, a menudo carecen de características esenciales como rotaciones de proxy, almacenamiento en caché y control de acceso, lo que los hace poco fiables en un entorno de producción.

Una URL pública puede tener el siguiente formato: https://proxyserver:port.

Proxies privados

Los proxies privados requieren autenticación y ofrecen mayor seguridad, estabilidad y funciones avanzadas, aunque normalmente tienen un coste. Ofrecen una conexión segura, rápida y fiable a una dirección IP dedicada, junto con funciones como la autenticación y rotación de proxies.

El acceso suele controlarse mediante autenticación, a menudo incluyendo un nombre de usuario y una contraseña como prefijo de la URL del proxy, de la siguiente forma: https://username:password@proxyserver:port.

Utilización de proxies con pip

Para empezar a usar un proxy con pip, necesitas reunir algunos detalles sobre tu proxy. El siguiente ejemplo utiliza un proxy público con los siguientes detalles:

  • Una dirección proxy para el servicio proxy
  • El puerto que el servicio proxy requiere para la comunicación

El siguiente repositorio proxy-list proporciona direcciones proxy públicas probadas diariamente que pueden ser útiles para pruebas pero que no deben utilizarse en entornos de producción.

Dentro del repositorio proxy-list, comprueba el archivo proxy-list-status.txt para encontrar un proxy público que funcione. Para ello, busca en el archivo una dirección que tenga la bandera de éxito junto a ella, lo que indica que está funcionando:

Selección de un proxy público

Para este tutorial, utiliza 45.185.162.203:999 como dirección proxy pública. Esto significa que la dirección del servidor proxy es http://45.185.162.203:999.

Configuración de un proxy pip con la línea de comandos

La forma más rápida de configurar un proxy pip es pasar la dirección cuando se llama al comando pip install usando la opción de línea de comandos --proxy.

Usando la dirección pública del proxy, prueba tu acceso al proxy y a los paquetes usando el siguiente comando:

# Public Proxy
pip install boto3 --proxy http://45.185.162.203:999

Este método es útil para probar y validar rápidamente proxies antes de configurar permanentemente un nuevo proxy. Si se publican paquetes pip, ayuda a verificar la disponibilidad desde una IP diferente.

Configuración de un proxy pip con el archivo pip Config

Para configurar permanentemente un proxy pip, el archivo pip config es una solución fácil y declarativa. Su ubicación depende de su sistema operativo y se puede encontrar en los siguientes directorios:

  • Global: Archivo de configuración de todo el sistema, compartido por todos los usuarios.
  • Usuario: Archivo de configuración por usuario para el usuario que ejecuta el proceso pip.
  • Sitio web: Fichero de configuración por entorno utilizando entornos virtuales Python.

Estos archivos de configuración se pueden encontrar o crear en las siguientes ubicaciones para cada sistema:

Linux/macOS

En los sistemas basados en Linux, el archivo de configuración de pip se denomina pip.conf y puede encontrarse en las siguientes ubicaciones:

  • Global:
    • Sistemas basados en Debian: Edite o cree pip.conf en el directorio/etc`.
    • sistemas basados en macOS: Edite o cree /Library/Application Support/pip/pip.conf.
  • Usuario:
    • Sistemas basados en Debian: Edite o cree el archivo ~/pip/pip.conf.
    • sistemas basados en macOS: Edite o cree el archivo de configuración ~/.config/pip/pip.conf.
  • Sitio: Cuando se carga en un entorno virtual Python, se encuentra en $VIRTUAL_ENV/pip.conf.

Windows

En un sistema Windows, el archivo es un archivo pip.ini y se puede encontrar en las siguientes ubicaciones:

  • Global: Edite o cree el archivo C:\ProgramData\pip\pip.ini. Tenga en cuenta que este archivo está oculto por defecto en los sistemas Windows, pero se puede escribir en él.
  • Usuario: Edite o cree pip.ini en %APPDATA%\pip\.
  • Sitio: Cuando se carga en un entorno virtual Python, editar o crear el archivo de configuración en %VIRTUAL_ENV%\pip.ini.

Contenido del archivo de configuración

Para este ejemplo, se utiliza un archivo pip config de un entorno virtual Python. En un entorno virtual activado, edite $VIRTUAL_ENV/pip .conf en sistemas basados en Debian o %VIRTUAL_ENV%\pip.ini en Windows.

En el archivo de configuración, debe actualizar la clave de proxy con el proxy HTTP o HTTPS que desee:

[global]
proxy = http://45.185.162.203:999

Una vez guardado el archivo, el proxy se utiliza automáticamente con cualquier comando pip, eliminando la necesidad de la bandera proxy mencionada anteriormente:

(venv) $ pip install boto3

Puede encontrar más detalles sobre las opciones de configuración disponibles en el archivo pip config en la documentación del proyecto.

Configuración de un proxy pip con variables de entorno

Establecer variables de entorno del sistema garantiza que se utilice un proxy para pip y todas las demás peticiones HTTP en un sistema. Esto se hace utilizando las variables de entorno HTTP_PROXY y HTTPS_PROXY, que a menudo son referenciadas por software como pip como un proxy del sistema a utilizar cuando se realizan peticiones HTTP.

Linux/macOS

Si utilizas un sistema operativo Linux, actualiza el archivo /etc/environment, o si eres usuario de macOS, actualiza el archivo .zshrc ubicado en el directorio home. A continuación, actualízalo con las nuevas entradas para tu servidor proxy:

HTTP_PROXY=https://proxyserver:port
HTTPS_PROXY=https://proxyserver:port

Una vez que reinicie sus sesiones de terminal o reinicie su sistema, las variables de entorno estarán presentes.

Windows

En un sistema Windows, puede establecer variables de entorno con los siguientes comandos en un terminal de símbolo del sistema:

setx HTTP_PROXY "https://proxyserver:port" /M
setx HTTPS_PROXY "https://proxyserver:port" /M

Reinicie el símbolo del sistema para que los cambios surtan efecto.

Probar la configuración

Una vez que tenga una configuración a nivel de sistema habilitada, ya sea a través del archivo pip config o de variables de entorno, debe probar que el proxy puede conectarse con éxito y recibir datos a través del proxy.

Linux/macOS

En Linux/macOS, utilice el siguiente comando:

$ python -m venv venv
$ source venve/scripts/activate

# for pip config file or environment variables
(venv) $ pip install requests

Si alguna vez desea anular esta configuración con un proxy específico, puede recurrir al uso de los indicadores de la CLI:

# pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port

En este comando, asegúrese de actualizar https://proxyserver:port con su propio proxy.

Windows

En Windows, utilice el siguiente comando:

> python -m venv venv
> .\venv\Scripts\Activate.bat
(venv) > pip install requests

Estos ajustes siempre se pueden anular utilizando las banderas pip CLI:

# pip cli flag
(venv) $ pip install requests --proxy https://proxyserver:port

Solución de problemas con proxies

Al conectarse a un proxy HTTP o HTTPS con pip, puede encontrarse con los siguientes problemas comunes, especialmente si explora el uso de proxies privados o proxies HTTPS debido a sus características mejoradas.

Problemas de autenticación

Los problemas de autenticación se ven comúnmente como un error 407 Proxy Authentication Required al intentar conectarse al proxy con pip. Esto indica que el proxy requiere un nombre de usuario y una contraseña para conectarse o que ha proporcionado las credenciales incorrectas para el proxy.

Cuestiones relativas a los certificados

Al conectarse a un proxy HTTPS, puede recibir un error de verificación de certificado fallido de pip. Esto indica que hay un problema con el certificado proporcionado por el servidor proxy.

Si su servidor proxy privado está utilizando un certificado autofirmado, puede obtener este error, y el certificado no puede ser verificado con una autoridad de certificación. Es posible que desee utilizar la opción de la CLI --trusted-host al conectarse a determinados dominios e ignorar los errores de certificado autofirmado.

Uso de pip con proxies rotatorios

Los proxies rotatorios ayudan a evitar las prohibiciones de IP cambiando automáticamente de dirección IP para cada solicitud. Esto imita a varios usuarios y evita las restricciones.

Puede implementar esto seleccionando proxies al azar de una lista. A continuación se muestra un sencillo script bash que instala paquetes pip mientras rota a través de proxies públicos.

Cree el siguiente script bash llamado rotate-proxies.sh:

proxy_list=(
  'http://45.185.162.203:999'
  'http://177.23.176.58:8080'
  'http://83.143.24.66:80'
)

pip_packages=(
  'requests'
  'numpy'
  'pandas'
)

# Loop through packages and install them
for package in "${pip_packages[@]}"
do
  # Randomly select a proxy from the list
  proxy=${proxy_list[$RANDOM % ${#proxy_list[@]}]}
  echo -e  "\nInstalling $package with proxy $proxy"
  pip install --proxy $proxy $package
done

Una vez creado, puede ejecutar el archivo para descargar los paquetes pip y rotar a través de un proxy aleatorio para cada comando pip. He aquí un resumen de la salida del script:

$ ./rotate-proxies.sh 

Installing requests with proxy http://177.23.176.58:8080
Collecting requests
  Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)

….

Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2025.1.31 charset-normalizer-3.4.1 idna-3.10 requests-2.32.3 urllib3-2.3.0

Installing six with proxy http://45.185.162.203:999
Collecting numpy
 Downloading numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl.metadata (62 kB)

…

Installing collected packages: numpy
Successfully installed numpy-2.2.2

Installing pandas with proxy http://83.143.24.66:80
Collecting pandas
  Downloading pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl.metadata (89 kB)

….

Installing collected packages: pytz, tzdata, six, python-dateutil, pandas
Successfully installed pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2025.1 six-1.17.0 tzdata-2025.1

Ventajas de utilizar proxies con pip

Los proxies ayudan a los desarrolladores a eludir las restricciones de red, acceder a recursos bloqueados y mejorar la velocidad de descarga de paquetes. Los proxies privados ofrecen caché, conexiones más rápidas y mayor seguridad al enmascarar tu identidad.

En comparación con una VPN, los proxies son una alternativa ligera para las solicitudes de pip. Mientras que una VPN encripta todo el tráfico de Internet para una mayor privacidad, puede ralentizar las instalaciones de paquetes debido al aumento de la latencia. Los proxies proporcionan una solución más rápida y eficiente para la gestión de dependencias.

Errores comunes y buenas prácticas

Al utilizar proxies con pip, es importante tener cuidado con los errores comunes, ya que pueden conducir a vulnerabilidades de seguridad. Errores como URL de proxy incorrectas o formatos de URL mal configurados -como protocolos HTTP o HTTPS ausentes o incorrectos- pueden interrumpir las conexiones a los repositorios de paquetes.

Un problema de seguridad frecuente es la codificación de credenciales de proxy(por ejemplo, nombres de usuario y contraseñas) en códigos fuente, scripts o definiciones de canalización de integración continua y entrega continua (CI/CD). Si este código se redistribuye, puede producirse un acceso no autorizado al proxy. Si las credenciales se ven comprometidas, el proxy puede ser utilizado indebidamente, con el consiguiente aumento de costes, o incluso ser explotado por ciberataques.

Para evitar estos errores, se recomienda que las credenciales del proxy se mantengan seguras almacenándolas en variables de entorno o archivos de configuración encriptados en lugar de directamente en el código. Además, debe probar la conectividad del proxy antes de utilizar pip para garantizar una configuración adecuada y evitar errores en tiempo de ejecución. Utilizando herramientas como curl o ping, puede verificar el rendimiento del proxy antes de ponerlo en servicio. Esto permite una experiencia de gestión de paquetes más fluida.

Utilización de Bright Data Proxies

Si está buscando un proveedor de proxies de alta calidad y prestaciones, eche un vistazo a Bright Data. Se trata de una solución de proxy que proporciona una amplia gama de direcciones IP, incluyendo residenciales, centros de datos y dispositivos móviles. También proporciona herramientas especializadas para la recopilación de datos y el web scraping, incluidos proxies rotatorios y la API Web Unlocker.

Bright Data puede ayudarle a crear fácilmente proxies para las necesidades de su proyecto. Para mostrarle lo fácil que es, vamos a crear un proxy residencial privado que puede utilizar con pip para acceder a los paquetes a través de una dirección IP diferente.

Para empezar, regístrese para obtener una cuenta gratuita de Bright Data. A continuación, acceda al panel de control del usuario.

En el menú lateral, haga clic en Proxies & Scraping:

Apoderados de Bright Data

Una vez cargado el formulario, configure un nuevo proxy residencial. Si utiliza la configuración predeterminada, obtendrá un proxy con una dirección IP compartida utilizada por varios usuarios de Bright Data:

Crear un proxy residencial

Si se dirige a una región específica, también puede especificar el país en el que desea que se encuentre la dirección IP.

Después de la creación, se le redirige a un panel que contiene el endpoint y los detalles de autenticación para su proxy recién creado. Anote el nombre de usuario, la contraseña y la dirección del servidor:

Panel de control proxy

Utilizando estos valores de punto final, compruebe su disponibilidad utilizando el indicador --proxy:

$ pip install pandas \
    --trusted-host pypi.org \
    --trusted-host files.pythonhosted.org \
    --proxy https://username:[email protected]:33335

Dado que el proxy de Bright Data utiliza un certificado autofirmado, puede utilizar el indicador trusted-host para incluir pypi.org y files.pythonhosted.org en la lista blanca de dominios de confianza.

Conclusión

Utilizar un proxy con pip ayuda a mejorar el anonimato y el control, permitiéndote eludir las restricciones de IP y el geobloqueo. Dependiendo de tus necesidades, puedes elegir entre proxies públicos y privados.

Los proxies privados ofrecen ventajas, como la rotación de IP, un mejor almacenamiento en caché, velocidades más rápidas y mayor estabilidad, pero el coste depende de la disponibilidad de IP y de la ubicación geográfica.

Configurar un proxy para pip es simple, con múltiples opciones como banderas CLI, un archivo de configuración pip, y variables de entorno. Sin embargo, los proxies públicos tienen limitaciones y, como se ha comentado anteriormente, no son ideales para grandes cargas de trabajo o uso en producción. Para una solución más fiable, Bright Data ofrece IPs residenciales y de centros de datos, proporcionando conexiones rápidas y estables y herramientas avanzadas para el web scraping y la recopilación de datos. Regístrese gratis para empezar.

No se requiere tarjeta de crédito