¿Hay alguna diferencia significativa entre
pip install -e /path/to/mypackage
y la variante setuptools?
python /path/to/mypackage/setup.py develop
python
pip
setuptools
PeterE
fuente
fuente
Respuestas:
Intente evitar llamar
setup.py
directamente, no le dirá correctamente a pip que ha instalado su paquete.Con
pip install -e
:Más: documentos
Lea también los documentos de setuptools .
fuente
Una diferencia más:
pip install -e
usa la rueda mientraspython setup.py develop
no la usa.
Con
install
, podría lograr el mismo comportamiento utilizandopip install -e /path/to/package --no-use-wheel
Más información sobre ruedas: ruedas de pitón
fuente
--no-use-wheel
DEPRECATED a favor de--no-binary :all:
Otra diferencia que puede favorecer
pip install -e
es que si su proyecto tiene dependencias eninstall_requires
ensetup.py
, a continuación,pip install -e .
instala dependencias con PIP, mientras quepython setup.py develop
se puede instalar coneasy_install
, y puede causar problemas re: 'huevo-info' como se mencionó anteriormente. Cuando seinstall-requires
usadependency_links
con URL de git personalizadas, con identificadores de huevo adjuntos, esto puede ser especialmente molesto.fuente
pip install -e .
, esencialmente hace un enlace simbólico en el directorio relevante de paquetes de sitio de Python para apuntar a su copia de trabajo. A medida que se realizan cambios de código en esa copia de trabajo, se refleja instantáneamente en la versión "instalada", por lo que no necesita volver a ejecutar los comandos de instalación a medida que avanza. Esto es principalmente útil para el desarrollo de un repositorio que representa un paquete instalable, pero también puede ser útil para, por ejemplo, escribir alguna colección de módulos con sólo importaciones en términos absolutos, etc.Otra diferencia más: cuando ejecuta
python setup.py develop
una versión que se considera una versión preliminar (quizás porque lo está ejecutando desde un clon de git cuando no ha extraído una versión), entonces permitirá la instalación de versiones preliminares de sus dependencias . Por otro lado, conpip install --editable
usted tendría que pasar--pre
explícitamente si desea estos lanzamientos previos.(Consulte el registro de CI con versiones preliminares utilizadas accidentalmente y compárelo con una compilación fija aquí ).
fuente