Frequently Asked Questions#

How do I install Pylint?#

For command line use, pylint is installed with:

pip install pylint

Or if you want to also check spelling with enchant (you might need to install the enchant C library):

pip install pylint[spelling]

It can also be integrated in most editors or IDEs. More information can be found in the documentation.

How do I contribute to Pylint?#

We welcome all forms of contributions such as updates for documentation, new code, checking issues for duplicates or telling us that we can close them, confirming that issues still exist, creating issues because you found a bug or want a feature, etc. Everything is much appreciated!

Please follow the code of conduct and check the Contributor Guides if you want to make a code contribution.

Does Pylint follow a versioning scheme?#

See upgrading pylint in the installation guide.

How do I find the name corresponding to a specific command line option?#

See the configuration documentation.

What is the format of the configuration file?#

The configuration file can be an ini or toml file. See the exhaustive list of possible options.

How to disable a particular message?#

Read Messages control for details and examples.

Pylint gave my code a negative rating out of ten. That can't be right!#

Prior to Pylint 2.13.0, the score formula used by default had no lower bound. The new default score formula is

max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))

If your project contains a configuration file created by an earlier version of Pylint, you can set evaluation to the above expression to get the new behavior. Likewise, since negative values are still technically supported, evaluation can be set to a version of the above expression that does not enforce a floor of zero.

How do I avoid getting unused argument warnings for API I do not control?#

Prefix (ui) the callback's name by cb_ (callback), as in cb_onclick(...). By doing so arguments usage won't be checked. Another solution is to use one of the names defined in the "dummy-variables" configuration variable for unused argument ("_" and "dummy" by default).

Why are there a bunch of messages disabled by default?#

Either because they are prone to false positives or that they are opinionated enough to not be included as default messages.

You can see the plugin you need to explicitly load in the technical reference.

How do I avoid "access to undefined member" messages in my mixin classes?#

You should add the no-member message to your ignored-checks-for-mixins option and name your mixin class with a name which ends with "Mixin" or "mixin" (default) or change the default value by changing the mixin-class-rgx option.

Where is the persistent data stored to compare between successive runs?#

Analysis data are stored as a pickle file in a directory which is localized using the following rules:

  • value of the PYLINTHOME environment variable if set

  • "pylint" subdirectory of the user's XDG_CACHE_HOME if the environment variable is set, otherwise
    • Linux: "~/.cache/pylint"

    • macOS: "~/Library/Caches/pylint"

    • Windows: "C:Users<username>AppDataLocalpylint"

  • ".pylint.d" directory in the current directory