================ Running Pylint ================ Invoking Pylint --------------- Pylint is meant to be called from the command line. The usage is :: pylint [options] modules_or_packages You should give Pylint the name of a python package or module, or some number of packages or modules. Pylint ``will not import`` this package or module, though uses Python internals to locate them and as such is subject to the same rules and configuration. You should pay attention to your ``PYTHONPATH``, since it is a common error to analyze an installed version of a module instead of the development version. It is also possible to analyze Python files, with a few restrictions. The thing to keep in mind is that Pylint will try to convert the file name to a module name, and only be able to process the file if it succeeds. :: pylint mymodule.py should always work since the current working directory is automatically added on top of the python path :: pylint directory/mymodule.py will work if ``directory`` is a python package (i.e. has an __init__.py file or it is an implicit namespace package) or if "directory" is in the python path. For more details on this see the :ref:`faq`. It is also possible to call Pylint from another Python program, thanks to the ``Run()`` function in the ``pylint.lint`` module (assuming Pylint options are stored in a list of strings ``pylint_options``) as: .. sourcecode:: python import pylint.lint pylint_opts = ['--version'] pylint.lint.Run(pylint_opts) To silently run Pylint on a ``module_name.py`` module, and get its standard output and error: .. sourcecode:: python from pylint import epylint as lint (pylint_stdout, pylint_stderr) = lint.py_run('module_name.py', return_std=True) Command line options -------------------- First of all, we have two basic (but useful) options. --version show program's version number and exit -h, --help show help about the command line options Pylint is architected around several checkers. You can disable a specific checker or some of its messages or message categories by specifying ``--disable=``. If you want to enable only some checkers or some message symbols, first use ``--disable=all`` then ``--enable=`` with ```` being a comma-separated list of checker names and message symbols. See the list of available features for a description of provided checkers with their functionalities. The ``--disable`` and ``--enable`` options can be used with comma-separated lists mixing checkers, message ids and categories like ``-d C,W,no-error,design`` It is possible to disable all messages with ``--disable=all``. This is useful to enable only a few checkers or a few messages by first disabling everything, and then re-enabling only what you need. Each checker has some specific options, which can take either a yes/no value, an integer, a python regular expression, or a comma-separated list of values (which are generally used to override a regular expression in special cases). For a full list of options, use ``--help`` Specifying all the options suitable for your setup and coding standards can be tedious, so it is possible to use a configuration file to specify the default values. You can specify a configuration file on the command line using the ``--rcfile`` option. Otherwise, Pylint searches for a configuration file in the following order and uses the first one it finds: #. ``pylintrc`` in the current working directory #. ``.pylintrc`` in the current working directory #. If the current working directory is in a Python module, Pylint searches \ up the hierarchy of Python modules until it finds a ``pylintrc`` file. \ This allows you to specify coding standards on a module-by-module \ basis. Of course, a directory is judged to be a Python module if it \ contains an ``__init__.py`` file. #. The file named by environment variable ``PYLINTRC`` #. if you have a home directory which isn't ``/root``: #. ``.pylintrc`` in your home directory #. ``.config/pylintrc`` in your home directory #. ``/etc/pylintrc`` The ``--generate-rcfile`` option will generate a commented configuration file on standard output according to the current configuration and exit. This includes: * Any configuration file found as explained above * Options appearing before ``--generate-rcfile`` on the Pylint command line Of course you can also start with the default values and hand-tune the configuration. Other useful global options include: --ignore= Add files or directories to the blacklist. They should be base names, not paths. --output-format= Select output format (text, json, custom). --msg-template=