¿Python tiene un sistema de administración de paquetes / módulos, similar a cómo Ruby tiene rubygems donde puedes hacer gem install packagename
?
Al instalar los módulos de Python , solo veo referencias python setup.py install
, pero eso requiere que primero encuentre el paquete.
Respuestas:
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:
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).
rails
express
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 ejecutarlosetup.py
y eventualmente con la ayuda de Googlesetup.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:
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:
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? "
fuente
gem install X
Parece que funciona en todas las plataformas. Entonces, ¿cómo manejaron esto para gemas que requieren compilación de código C en Windows?El índice de paquete de Python (PyPI) parece ser estándar:
pip install MyProject
pip install --upgrade MyProject
pip install MyProject==1.0
Puede instalar el administrador de paquetes de la siguiente manera:
Referencias
fuente
Y solo para proporcionar un contraste, también hay pip .
fuente
Como desarrollador de Ruby y Perl y aprendiz de Python, no he encontrado que easy_install o pip sean equivalentes a RubyGems o CPAN.
Tiendo a mantener mis sistemas de desarrollo ejecutando las últimas versiones de los módulos a medida que los desarrolladores los actualizan, y congelar mis sistemas de producción en las versiones establecidas. Tanto RubyGems como CPAN facilitan la búsqueda de módulos al enumerar lo que está disponible, luego instalarlo y luego actualizarlo individualmente o en masa si lo desea.
easy_install y pip facilitan la instalación de un módulo. Puedo nombrar explícitamente el módulo que se actualizará, pero las aplicaciones no me dirán qué se ha actualizado ni actualizarán todo a granel si lo deseo.
Entonces, la funcionalidad básica está en pip y easy_install, pero faltan características que me gustaría ver que las haría más amigables y fáciles de usar y a la par con CPAN y RubyGems.
fuente
Hay al menos dos, easy_install y su sucesor pip .
fuente
Al menos a fines de 2014, se debe considerar la distribución Anaconda Python de Continuum Analytics con el administrador de paquetes de conda . Resuelve la mayoría de los problemas serios que las personas enfrentan con Python en general (administración de diferentes versiones de Python, actualización de versiones de Python, administración de paquetes, entornos virtuales, compatibilidad con Windows / Mac) en una descarga cohesiva.
Le permite hacer casi todo lo que desee con Python sin tener que cambiar el sistema. Mi próxima solución preferida es pip + virtualenv, pero debe instalar virtualenv en su sistema Python (y su sistema Python puede no ser la versión que desea), o construir desde la fuente . Anaconda hace que todo este proceso sea el clic de un botón, además de agregar muchas otras funciones.
fuente
Eso sería fácil_instalar .
fuente
easy_install
, consulte primero las fechas. Ese fue un consejo válido cuando se dio hace casi 7 años . No pienso en nosotros, los que respondemos vamos a revisar esto regularmente para actualizar, por lo que la votación negativa es una tontería.Se llama setuptools. Lo ejecutas con el comando "easy_install".
Puede encontrar el directorio en http://pypi.python.org/
fuente
No veo ni MacPorts ni Homebrew mencionados en otras respuestas aquí, pero dado que los veo mencionados en otra parte de Stack Overflow para preguntas relacionadas, agregaré mis propios US $ 0.02 que mucha gente parece considerar MacPorts como no solo un paquete administrador de paquetes en general (a partir de hoy enumeran 16311 paquetes / puertos, 2931 coinciden con "python", aunque solo para Macs), pero también como un administrador de paquetes decente (quizás mejor) para paquetes / módulos Python:
Pregunta
"... ¿Cuál es el método que utilizan los desarrolladores de Mac Python para administrar sus módulos?"
Respuestas
"MacPorts es perfecto para Python en la Mac".
"La mejor manera es usar MacPorts".
"Prefiero MacPorts ..."
"Con mi configuración de MacPorts ..."
"Utilizo MacPorts para instalar ... módulos de terceros rastreados por MacPorts"
Ciencia
"Las Mac (a diferencia de Linux) no vienen con un administrador de paquetes, pero hay un par de administradores de paquetes populares que puedes instalar. Macports ..."
Todavía estoy debatiendo si debo usar MacPorts o no, pero en este momento me estoy inclinando en esa dirección.
fuente
pip install <your_favorite_package>
En Windows instale http://chocolatey.org/ luego
Abra una nueva ventana de cmd con la RUTA actualizada. A continuación, hacer
Después de eso puedes
fuente
Dado que nadie ha mencionado pipenv aquí, me gustaría describir mis puntos de vista por qué todos deberían usarlo para administrar paquetes de python.
Como @ColonelPanic mencionó, hay varios problemas con Python Package Index y también con pip y virtualenv .
Pipenv resuelve la mayoría de los problemas con pip y también proporciona características adicionales.
Características de Pipenv
Pipenv está destinado a reemplazar pip y virtualenv, lo que significa que pipenv creará automáticamente un entorno virtual separado para cada proyecto, evitando conflictos entre diferentes versiones de python / versiones de paquete para diferentes proyectos.
Si ha trabajado en proyectos de Python anteriormente, se dará cuenta de que estas características hacen que la administración de paquetes sea mucho más fácil.
Otros comandos
check
comprueba las vulnerabilidades de seguridad y afirma que el entorno actual cumple los requisitos de PEP 508. ( que creo que es una gran característica, especialmente después de esto: paquetes maliciosos en PyPi )graph
le mostrará un gráfico de dependencia, de sus dependencias instaladas.Puedes leer más sobre esto aquí - Pipenv .
Instalación
Puede encontrar la documentación de instalación aquí.
PD: Si le gustó trabajar con las solicitudes del paquete Python , le agradaría saber que pipenv es del mismo desarrollador Kenneth Reitz
fuente
En 2019, poesía es el administrador de paquetes y dependencias que está buscando.
https://github.com/sdispater/poetry#why
Es moderno, simple y confiable.
fuente
Poesía es lo que estás buscando. Se encarga de la gestión de dependencias, entornos virtuales, ejecución.
fuente