Hi, On Fri, Mar 04, 2016 at 01:03:17PM +0800, Paul Wise wrote: > > That would be https://pypi.python.org/pypi/PyChecker > > > > Pylint has never run code from the source tree. > > I wonder where I got that impression from. > > What about from the module it is checking? > > > "pylint <themodule>" should work fine. > > Unfortunately that needs the module installed to work. > > Is there any way to make it scan the source tree instead?
It *does* read the source and scan the tree. It *does*not* import or execute the code. That is the very first goal of pylint: "detect code smells in python code by staticaly analyzing the syntax tree read from the source". $ cat foo.py a = b+1 $ pylint -E foo.py No config file found, using default configuration ************* Module foo E: 1, 4: Undefined variable 'b' (undefined-variable) $ mkdir bar $ mv foo.py bar $ touch bar/__init__.py $ pylint -E bar/ No config file found, using default configuration ************* Module bar.foo E: 1, 4: Undefined variable 'b' (undefined-variable) There is even a library named https://pypi.python.org/pypi/astroid that was extracted out of pylint to make it easier for other tools to do type inference (and other things) on Python's Abstract Syntax Trees. I hope this helps making clearer what pylint can be used for. I had a look at the README and I suppose the intro section at the top could state the above goal with more clarity. -- Nicolas Chauvat logilab.fr - services en informatique scientifique et gestion de connaissances