Hay varias familias de componentes de Python.
Lo que viene con Python. Esto se cuida solo.
Lo que tienes con easy_install. Esto, también, se cuida a sí mismo.
Los paquetes que tenía que conseguir de otra manera, ya sea como TARballs o SVN checkouts. Crea una carpeta Components
. Pon las descargas o los SVN allí primero. Cada vez. Haz las instalaciones desde allí.
Los paquetes que ha escrito que son reutilizables. Tengo una carpeta Projects
con cada proyecto en esa carpeta. Si el proyecto es altamente reutilizable, tiene un setup.py
y realmente ejecuto la instalación como si lo hubiera descargado. No tengo muchos de estos, pero algunos. Algunos de ellos podrían convertirse en proyectos de código abierto.
Las aplicaciones finales que escribe. Tengo una carpeta en Projects
con cada una de estas aplicaciones de nivel superior. Estas suelen ser cosas grandes y divagantes (como los sitios de Django) y no tienen setup.py
. ¿Por qué? A menudo son bastante complejas, con solo unas pocas instalaciones de servidores para administrar, y cada una de esas instalaciones de servidores es única. Estos generalmente se basan en PYTHONPATH
para identificar sus partes.
Observe el tema común. O son componentes que descargaste o son proyectos en los que estás trabajando.
Además, mantengo esto separado (hasta cierto punto) del cliente. Tengo un directorio maestro de carpetas de clientes, cada uno de los cuales tiene proyectos y cada proyecto tiene ventas y entregas. No todos los proyectos tienen ventas y entregas.
En realidad, voy un paso más allá: mi sitio-paquetes omite herramientas de configuración, ya que (a) no lo necesito allí, (b) virtualenv incluye una copia incluida con él que puede usar al crear cada entorno, y (c) algunas versiones de virtualenv me causan problemas si están disponibles en todo el sistema. –