Pregunta

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 no tengo un sistema particular para organizarlos.

¿Cómo mantiene todo manejable?

¿Fue útil?

Solución

Mi consejo:

Otros consejos

Además de PEP8 y easy_install, debe consultar virtualenv. Virtualenv le permite tener múltiples árboles de bibliotecas 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. generalmente coordinamos las actualizaciones de la biblioteca.

Hay varias familias de componentes Python.

  1. Lo que viene con Python. Esto se hace cargo de sí mismo.

  2. Lo que tienes con easy_install. Esto también se cuida solo.

  3. Los paquetes que tenía que obtener de otra manera, ya sea como TARballs o SVN. Cree una carpeta Componentes . Ponga las descargas o los SVN's allí primero. Cada vez. Se instala desde allí.

  4. Los paquetes que escribió 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 pueden convertirse en proyectos de código abierto.

  5. Las aplicaciones finales que escribes. Tengo una carpeta en Proyectos con cada una de estas aplicaciones de nivel superior. Por lo general, son cosas grandes y divagantes (como los sitios de Django) y no tienen setup.py . ¿Por qué? A menudo son bastante complejos con solo unas pocas instalaciones de servidor para administrar, y cada una de esas instalaciones de servidor es única. Estos generalmente se basan en PYTHONPATH para identificar sus partes.

Observe el tema común. O son componentes que descargaste o proyectos en los que estás trabajando.

También, mantengo esto separado (hasta cierto punto) del cliente. Tengo un directorio maestro de carpetas de Cliente, cada una de las cuales tiene Proyectos y cada proyecto tiene Ventas y Entrega. No todos los proyectos tienen ventas y entregas.

Tal vez PEP8 y easy_install puede ayudarlo?

Mantengo 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 a (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 / branch / 1.0, etc., pretendiendo 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 una directorio de paquetes de sitio por usuario , que puede ser más conveniente.

Los " Módulos " La página de documentación de Python es una guía útil para organizar el código, específicamente los " paquetes " secciones

Mi consejo es tratar de poner todo en su (s) directorio (s) de paquetes de sitio a menos que tenga una buena razón para no hacerlo. Y trato de evitar easy_install porque encuentro que tiende a arruinar mi sys.path con ubicaciones de huevo, pero eso soy solo yo. Algunas personas lo encuentran útil.

Si tiene muchos programas que usan bibliotecas diferentes que pueden entrar en conflicto entre sí, también puede consultar virtualenv .

Acabo de encontrar en este sitio otra pregunta de StackOverflow: http://infinitemonkeycorps.net/docs/pph/ Esto abarca más que solo la colocación de módulos, pero una vez que lo coloque, escriba cómo puede manejar fácilmente la documentación, las pruebas y la distribución.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top