Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »


Python Plugin

Latest version


Requires Sonar version

2.9 or higher




Waleri Enns

Issue Tracker


Description / Features

This plugin enables the analysis of Python projects.

Current feature list:

  • Recognition of basic program entities:
    • Python modules
    • Python packages
  • Provides basic size metrics:
    • files (number of)
    • lines
    • lines of comments
    • lines of code
  • Static code checking via pylint (covering as well code style as code defects aspects)
  • Provides cyclomatic complexity metrics including:
    • Complexity per function/method
    • Complexity per module
    • Complexity distributions
  • Recognition of code duplication
  • Basic highlighting mode for Python in Sonar UI


This plugin has following dependencies:

  • For complexity analysis the Python interpreter is needed, anything >=2.5 will do.
  • Pylint is used for the rules compliance analysis.


  1. Copy the jar-archive into <sonar home>/extensions/plugins/ directory
  2. Restart the Sonar web server


You can analyze your projects using the usual means (see this page for all available). Just make sure to set a couple of properties. See below how to do it for maven and sonar-runner.

Analyzing with maven

  • Add your source directories to the build and the language-property to the properties section of your pom. Syntax:


<build> ... <sourceDirectory> path </sourceDirectdory> ... </build>

<properties> ... <sonar.language>py</sonar.language> ... </properties>


  • Make sure the dynamic analysis not switched of. Syntax:

<properties> ... <sonar.dynamicAnalysis>true<sonar.dynamicAnalysis> ... </properties>

  • Make sure sonar-server is running
  • Start the analysis with "mvn sonar:sonar"

See here for general information about analyzing via maven.

Analyzing with sonar-runner

  • Add a to the root directory of your project
  • Set sonar.language to py. Syntax:


  • Make sure your sonar-server is running
  • run sonar-runner in the directory containing the

See here for general information about analyzing via sonar-runner.

Sample Project

... is available here.



Version 0.1 (5 issues)

  • No labels