Python setup.py develop vs install

Dos opciones en setup.py develop e install me confunden. De acuerdo con este sitio , al develop crea un enlace especial al directorio de paquetes de sitio.

La gente me ha sugerido que use python setup.py install para una instalación nueva y python setup.py develop después de que se hayan realizado cambios en el archivo de configuración.

¿Alguien puede arrojar algo de luz sobre el uso de estos comandos?

python setup.py install se utiliza para instalar paquetes (generalmente de terceros) que no va a desarrollar / modificar / depurar usted mismo.

Para sus propias cosas, primero desea instalar su paquete y luego poder editar el código con frecuencia sin tener que volver a instalar el paquete cada vez, y eso es exactamente lo que python setup.py develop hace: instala el paquete (normalmente solo una carpeta de origen) de una manera que le permita editar convenientemente su código después de que se instale en el entorno (virtual), y que los cambios surtan efecto de inmediato.

Tenga en cuenta que es muy recomendable utilizar pip install . (instalar) y pip install -e . (instalación del desarrollador) para instalar paquetes, ya que invocar setup.py directamente hará lo incorrecto para muchas dependencias, como versiones preliminares y versiones de paquetes incompatibles, o dificultará la desinstalación del paquete con pip .

De la documentación . El develop no instalará el paquete pero creará un .egg-link en el directorio de implementación de nuevo al directorio de código fuente del proyecto.

Así que es como instalar, pero en lugar de copiar en los site-packages , agrega un enlace simbólico (el .egg-link actúa como un enlace simbólico multiplataforma).

De esa manera, puede editar el código fuente y ver los cambios directamente sin tener que volver a instalarlos cada vez que realice un pequeño cambio. Esto es útil cuando usted es el desarrollador de ese proyecto, de ahí el nombre se develop . Si solo está instalando el paquete de otra persona, debe usar install

Otra cosa que la gente puede encontrar útil al usar el método de develop es la opción --user para instalar sin sudo. Ex:

 python setup.py develop --user 

en lugar de

 sudo python setup.py develop