Progreso reciente
Marzo de 2014 : ¡buenas noticias! Python 3.4 se envía con Pip. Pip ha sido durante mucho tiempo el administrador de paquetes estándar de facto de Python. Puede instalar un paquete como este:
pip install httpie
Wahey! Esta es la mejor característica de cualquier versión de Python. Hace que la riqueza de las bibliotecas de la comunidad sea accesible para todos. Los novatos ya no están excluidos del uso de bibliotecas comunitarias por la dificultad prohibitiva de la configuración.
Sin embargo , sigue habiendo una serie de frustraciones sobresalientes con la experiencia de empaquetado de Python. Acumulativamente, hacen que Python sea muy poco acogedor para los novatos. Además, la larga historia de negligencia (es decir, no enviar con un administrador de paquetes durante 14 años desde Python 2.0 a Python 3.3) causó daños a la comunidad. Describo ambos a continuación.
Frustraciones sobresalientes
Es importante comprender que, si bien los usuarios experimentados pueden evitar estas frustraciones, son barreras importantes para las personas nuevas en Python. De hecho, la dificultad y la hostilidad del usuario en general es probable que disuada a muchos de ellos.
El sitio web de PyPI es contra-útil
Cada idioma con un administrador de paquetes tiene un repositorio oficial (o cuasi oficial) para que la comunidad descargue y publique paquetes. Python tiene el índice del paquete Python, PyPI. https://pypi.python.org/pypi
Comparemos sus páginas con las de RubyGems y Npm (el administrador de paquetes Node).
- https://rubygems.org/gems/rails Página RubyGems para el paquete
rails
- https://www.npmjs.org/package/express página Npm para el paquete
express
- https://pypi.python.org/pypi/simplejson/ Página de PyPI para el paquete
simplejson
Verá que las páginas RubyGems y Npm comienzan con una descripción de una línea del paquete, y luego grandes instrucciones amigables sobre cómo instalarlo.
Mientras tanto, ¡ay de cualquier desafortunado usuario de Python que ingenuamente busque PyPI! En https://pypi.python.org/pypi/simplejson/ , no encontrarán instrucciones tan útiles. Sin embargo, hay un gran enlace verde 'Descargar'. No es irrazonable seguirlo. ¡Ajá, hacen clic! Su navegador descarga un .tar.gz
archivo. Muchos usuarios de Windows ni siquiera pueden abrirlo, pero si perseveran, eventualmente pueden extraerlo, luego ejecutarlo setup.py
y eventualmente con la ayuda de Google setup.py install
. Algunos se rendirán y reinventarán la rueda.
Por supuesto, todo esto está mal. La forma más fácil de instalar un paquete es con un comando Pip. Pero PyPI ni siquiera mencionó a Pip. En cambio, los condujo por un camino arcaico y tedioso.
Error: no se puede encontrar vcvarsall.bat
Numpy es una de las bibliotecas más populares de Python. Intenta instalarlo con Pip, obtienes este mensaje de error críptico:
Error: no se puede encontrar vcvarsall.bat
Intentar solucionar esa es una de las preguntas más populares sobre Stack Overflow: " error: no se puede encontrar vcvarsall.bat "
Pocas personas tienen éxito.
A modo de comparación, en la misma situación, Ruby imprime este mensaje, que explica lo que está sucediendo y cómo solucionarlo:
Actualice su RUTA para incluir herramientas de compilación o descargue DevKit desde http://rubyinstaller.org/downloads y siga las instrucciones en http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
Publicar paquetes es difícil
Ruby y Nodejs se entregan con gerentes de paquetes con todas las funciones, Gem (desde 2007) y Npm (desde 2011), y han nutrido comunidades de intercambio centradas en GitHub. Npm hace que publicar paquetes sea tan fácil como instalarlos, ya tiene 64k paquetes . RubyGems enumera 72k paquetes . El venerable índice del paquete de Python solo muestra 41k .
Historia
Volando frente a su lema " baterías incluidas ", Python envió sin un administrador de paquetes hasta 2014.
Hasta Pip, el estándar de facto era un comando easy_install
. Era lamentablemente inadecuado. El no era un comando para desinstalar paquetes.
Pip fue una mejora masiva. Tenía la mayoría de las características de Ruby's Gem. Desafortunadamente, Pip era, hasta hace poco, irónicamente difícil de instalar. De hecho, el problema sigue siendo una de las principales preguntas de Python sobre Stack Overflow: " ¿Cómo instalo pip en Windows? "