modulos - ¿Cómo se organizan los módulos de Python?
lista de modulos de python (8)
¿Tal vez PEP8 y easy_install pueden ayudarlo?
Cuando se trata de organizar módulos de Python, mi sistema Mac OS X es un desastre. Tengo paquetes por todas partes en mi disco duro y ningún sistema en particular para organizarlos.
¿Cómo mantienes todo manejable?
Acabo de encontrar este sitio a través de otra pregunta de : http://infinitemonkeycorps.net/docs/pph/. Esto aborda algo más que la ubicación del módulo, pero una vez que lo coloque, escriba cómo puede manejar fácilmente la documentación, las pruebas y la distribución.
Además de PEP8 y easy_install, debería verificar virtualenv. Virtualenv le permite tener múltiples árboles de biblioteca de python diferentes. En el trabajo, utilizamos virtualenv con un entorno de arranque para configurar rápidamente un entorno de desarrollo / producción en el que todos estamos sincronizados con las versiones de la biblioteca, etc. En general, coordinamos las actualizaciones de la biblioteca.
Guardo toda la fuente de mis paquetes dentro de ~ / Packages /, y luego hago una instalación estándar con "python2.5 setup.py install" en ellos. Esto se lanza en (para mí) /Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/. Para el desarrollo de mi propio software, tengo alias configurados para cambiar entre trunk / branches / 1.0, etc., pre-prending en PYTHONPATH. (Tengo que ejecutar ''setup.py build_ext --inplace'' en cada uno de estos directorios antes de que se importen correctamente).
Vale la pena señalar que Python2.6 tiene un directorio de paquetes de sitio por usuario , que puede ser más conveniente.
Hay varias familias de componentes de Python.
Lo que viene con Python. Esto se cuida solo.
Lo que obtuviste 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 de
Components
. Pon las descargas o los SVN allí primero. Cada vez. Haz las instalaciones desde allí.Los paquetes que escribió que son reutilizables. Tengo una carpeta de
Projects
con cada proyecto en esa carpeta. Si el proyecto es altamente reutilizable, tiene unsetup.py
y actualmente 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 escribes 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 tienensetup.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. Generalmente, confían enPYTHONPATH
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.
Mi consejo es tratar de poner todo en su directorio de paquetes de sitio a menos que tenga una buena razón para no hacerlo. Y trato de evitar easy_install porque me parece que tiende a mezclar mi sys.path con ubicaciones de huevo, pero así soy yo. Algunas personas lo encuentran útil.
Si tiene muchos programas que usan bibliotecas diferentes que pueden entrar en conflicto entre sí, también puede probar virtualenv .
Mi consejo:
- Lea Instalando los módulos de Python .
- Lea la distribución de los módulos de Python .
- Comience a usar easy_install desde setuptools . Lea la documentación de las herramientas de configuración.
- Siempre use virtualenv . Mi directorio de paquetes de sitio contiene setuptools y virtualenv solamente .
- Echa un vistazo a la nueva instalación de proyecto de Ian Bicking .
- Sigue todo lo que Ian Bicking está trabajando. Siempre es bondad.
- Al crear sus propios paquetes, use distutils / setuptools. Considere el uso de
paster create
(vea http://pythonpaste.org ) para crear su diseño de directorio inicial.
La página de documentación de Python "Módulos" es una guía útil para organizar el código, específicamente las secciones de "paquetes"