Is there a good dependency analysis tool for Pytho

2019-01-08 08:10发布

问题:

Dependency analysis programs help us organize code by controlling the dependencies between modules in our code. When one module is a circular dependency of another module, it is a clue to find a way to turn that into a unidirectional dependency or merge two modules into one module.

What is the best dependency analysis tool for Python code?

回答1:

I recommend using snakefood for creating graphical dependency graphs of Python projects. It detects dependencies nicely enough to immediately see areas for refactorisation. Its usage is pretty straightforward if you read a little bit of documentation.

Of course, you can omit the graph-creation step and receive a dependency dictionary in a file instead.



回答2:

I don't know what is the best dependency analysis tool. You could look into modulefinder – it's a module in the standard library that determines the set of modules imported by a script.

Of course, with python you have problems of conditional imports, and even potentially scripts calling __import__ directly, so it may not find everything. This is why tools like py2exe need special help to cope with packages like PIL.



回答3:

PyStructure – Automated Structure and Dependency Analysis of Python Code

This is used for PyDev's refactoring features. http://pystructure.ifs.hsr.ch/trac/



回答4:

I'm not sure about the best tool, but dependency analysis is best done using extracting and scanning the python files of the project.

Here is one such tool using the above technique : orkohunter.net/depends