2009-02-03 17 views
24

Los programas de análisis de dependencias nos ayudan a organizar el código controlando las dependencias entre los módulos de nuestro código. Cuando un módulo es una dependencia circular de otro módulo, es una pista para encontrar una manera de convertir eso en una dependencia unidireccional o combinar dos módulos en un módulo.¿Existe una buena herramienta de análisis de dependencia para Python?

¿Cuál es la mejor herramienta de análisis de dependencia para el código Python?

Respuesta

25

Recomiendo usar snakefood para crear gráficos de dependencia gráfica de proyectos Python. Detecta las dependencias lo suficientemente bien como para ver inmediatamente las áreas para la refactorización. Su uso es bastante sencillo si lee un poco de documentación.

Por supuesto, puede omitir el paso de creación de gráficos y recibir un diccionario de dependencias en un archivo.

+0

Cosas muy interesante: yo estaba buscando una manera rápida de determinar los archivos utilizados por un archivo de Python dado y que era perfecto: es mucho más rápido que el otras soluciones que he visto (usando el buscador de módulos, etc.). Creo que cuando tenga tiempo escribiré mi propia solución basada en AST, pero esto fue lo que hizo por ahora: ¡gracias! – jkp

+0

@jkp snakefood está basado en AST, ¿cuál es el problema? – joeforker

+0

Gracias por consejo. Exactamente lo que necesitaba. No es que no sea muy amigable para Windows. Terminé usándolo en Linux. – lambacck

1

No sé cuál es la herramienta de análisis de dependencia mejor. Puede mirar en modulefinder - es un módulo en la biblioteca estándar que determina el conjunto de módulos importados por una secuencia de comandos.

Por supuesto, con python tiene problemas de importación condicional, e incluso potencialmente scripts llamando directamente al __import__, por lo que es posible que no encuentre todo. Esta es la razón por la que herramientas como py2exe necesitan ayuda especial para manejar paquetes como PIL.

1

PyStructure - Estructura y análisis automatizado Dependencia de código Python

Esto se utiliza para las características de refactorización de PyDev. http://pystructure.ifs.hsr.ch/trac/

+0

PyStructure incluye un motor de inferencia de tipo. – joeforker

0

No estoy seguro de cuál es la mejor herramienta, pero el análisis de la dependencia se realiza mejor al extraer y escanear los archivos python del proyecto.

Aquí es una de estas herramientas utilizando la técnica anterior: orkohunter.net/depends

Cuestiones relacionadas