[Spanish] Usando pip con servidores alternativos

Desde que uso pip para instalar los paquetes de python dentro de mis entornos virtuales de desarrollo (virtualenv), me he dado cuenta que instalar Django es particularmente difícil.

Por ejemplo, cuando se ejecuto el comando

$ pip install django

La respuesta que se obtengo, luego de esperar un par de minutos, es que la conexión con el servidor ha expirado (timeout) y el paquete no se ha instalado.

Por default, pip trata de descargar los paquetes del servidor http://pypi.python.org/simple/ así que mi primer intento por solventar este problema es usar la opción –use-mirrors del comando para consultar un servidor alternativo

$ pip install django --use-mirrors

Pero nuevamente, la conexión expira ya que el servidor alternativo consultado http://a.pypi.python.org/simple/ tampoco responde en un tiempo razonable.

Buscando por internet descubrí que es posible definir manualmente un servidor alternativo diferente gracias a la opción –index-url

$ pip install django --index-url=http://c.pypi.python.org/simple/

Si este mirror (servidor espejo) tampoco funciona, es posible probar con cualquiera de los siguientes servidores hasta obtener una conexión con el repositorio de paquetes de pip:

  • http://a.pypi.python.org/simple/
  • http://b.pypi.python.org/simple/
  • http://c.pypi.python.org/simple/
  • http://d.pypi.python.org/simple/
  • http://e.pypi.python.org/simple/
  • http://f.pypi.python.org/simple/
  • http://g.pypi.python.org/simple/

Para poder ver la disponibilidad y tiempo de respuesta de cada uno de estos mirrors se puede consultar esta página web: http://www.pypi-mirrors.org/

Como escribir siempre la dirección completa del mirror es tedioso, es posible definir como servidor default al mirror C modificando el archivo de configuración global de pip

sudo vim ~/.pip/pip.conf

En mi caso el archivo de configuración queda como:

[global]
timeout = 200
index-url=http://c.pypi.python.org/simple/

Ahora, cada vez que corra el comando

$ pip install django

Estaré consultando el repositorio desde el mirror C y no desde el servidor estándar

Espero que este pequeño tip ayude a otros programadores a no perder tiempo en la configuración de sus entornos virtuales.

1 thought on “[Spanish] Usando pip con servidores alternativos”

So, what do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.