Domanda

Stiamo riscontrando un vero problema con le persone che effettuano il check-in del codice che non funziona perché qualcosa è stato refactored. Certo, questo è in parte dovuto al fatto che i nostri sviluppatori non hanno davvero buoni strumenti per trovare facilmente questo tipo di errori.

Esistono strumenti per aiutare a trovare ImportErrors in Python? Naturalmente, la risposta corretta qui è & Quot; per questo dovresti usare i tuoi test unitari. & Quot; Ma sono nella terra del codice legacy (almeno secondo la definizione di Michael Feathers), quindi i nostri test unitari sono qualcosa su cui stiamo lavorando intensamente.

Nel frattempo, sarebbe bello avere una sorta di strumento che passi attraverso ogni directory e importa ogni file al suo interno solo per trovare eventuali script che hanno ImportErrors (come dire se un file o una classe è stata rinominata di recente) . Suppongo che questo non sia terribilmente difficile da scrivere da solo, ma ci sono già programmi che sono già stati scritti per farlo?

È stato utile?

Soluzione

Pychecker è per te. Importa i moduli e troverà questi errori.

http://pychecker.sourceforge.net/

Oh, e " pylint < nome modulo > " importerà il modulo, ma suppongo che dovresti chiamarlo una volta per ogni modulo che desideri, dove pychecker almeno supporta * .py. (Pylint supporta anche * .py ma non importa i moduli in quella situazione).

Altri suggerimenti

Qualcosa del genere?

import os
for x in os.listdir("some/path"):
    execfile( x )

È abbastanza o ne avresti bisogno di più?

Nota che qualsiasi modulo privo di if __name__ == "__main__": - ovviamente - decollerà e inizierà a fare cose.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top