Tengo un paquete externo que quiero instalar en mi python virtualenv desde un archivo tar. ¿Cuál es la mejor forma de instalar el paquete?
Descubrí 2 formas de hacerlo:
- Extraiga el archivo tar, luego ejecútelo
python setup.py install
dentro del directorio extraído. pip install packagename.tar.gz
del ejemplo 7 en https://pip.pypa.io/en/stable/reference/pip_install/#examples
Es si hay alguna diferencia haciéndolos de estas 2 formas.
python
virtualenv
pip
setup.py
usuario2125465
fuente
fuente
pip
. Puede desinstalar paquetes con él.sdist
?yum
.Respuestas:
En la superficie, ambos hacen lo mismo: hacer
python setup.py install
opip install <PACKAGE-NAME>
instalará su paquete de Python por usted, con un mínimo de esfuerzo.Sin embargo, usar pip ofrece algunas ventajas adicionales que lo hacen mucho más agradable de usar.
setup.py
, a menudo tendrá que buscar y descargar dependencias manualmente, lo cual es tedioso y puede volverse frustrante.pip uninstall <PACKAGE-NAME>
ypip install --upgrade <PACKAGE-NAME>
. Por el contrario, si instala un paquete utilizandosetup.py
, debe eliminar manualmente y mantener un paquete a mano si desea deshacerse de él, lo que podría ser potencialmente propenso a errores.setup.py
, debe visitar el sitio web de la biblioteca, averiguar dónde descargarlo, extraer el archivo, ejecutarsetup.py
... Por el contrario, pip buscará automáticamente el índice de paquetes de Python (PyPi) para ver si el paquete existe allí, y descargará, extraerá e instalará automáticamente el paquete. Con algunas excepciones, casi todas las bibliotecas de Python realmente útiles se pueden encontrar en PyPi.virtualenv
, que es un programa que le permite ejecutar múltiples proyectos que requieren bibliotecas en conflicto y versiones de Python en su computadora. Más info .Básicamente, usa pip. Solo ofrece mejoras sobre el uso
python setup.py install
.Si está utilizando una versión anterior de Python, no puede actualizar y no tiene pip instalado, puede encontrar más información sobre cómo instalar pip en los siguientes enlaces:
pip, por sí solo, no requiere un tutorial. El 90% del tiempo, el único comando que realmente necesita es
pip install <PACKAGE-NAME>
. Dicho esto, si está interesado en obtener más información sobre los detalles de lo que puede hacer exactamente con pip, consulte:También se recomienda comúnmente que use pip y virtualenv juntos. Si eres un principiante en Python, personalmente creo que estaría bien comenzar con solo usar pip e instalar paquetes globalmente, pero eventualmente creo que deberías hacer la transición al uso de virtualenv mientras abordas proyectos más serios.
Si desea obtener más información sobre cómo usar pip y virtualenv juntos, consulte:
fuente
python setup.py install
también descarga e instala dependencias. ¿Es esto un cambio desde que escribió esta respuesta en 2013?python setup.py install
es el análogo de make install: es una forma limitada de compilar y copiar archivos en directorios de destino. Esto no significa que sea la mejor manera de instalar software en su sistema.pip
es un administrador de paquetes, que puede instalar, actualizar, enumerar y desinstalar paquetes, como los administradores de paquetes familiares, que incluyen:dpkg, apt, yum, urpmi, ports
etc. Bajo el capó, se ejecutarápython setup.py install
, pero con opciones específicas para controlar cómo y dónde terminan instaladas las cosas.En resumen: use
pip
.fuente
La pregunta es sobre el método preferido para instalar un tarball local que contenga un paquete de Python, NO sobre la ventaja de cargar el paquete en un servicio de indexación como PyPi.
Como no sé, algún distribuidor de software no carga su paquete en PyPi, sino que pide a los desarrolladores que descarguen el paquete de su sitio web e instalen.
Esto puede funcionar pero no se recomienda. No es necesario desenvolver el archivo tarball y entrar en él para ejecutar el archivo setup.py.
Esta es la forma diseñada y preferida. Conciso y alineado con paquetes estilo PyPi.
pip install
Puede encontrar más información aquí: https://pip.readthedocs.io/en/stable/reference/pip_install/fuente