Extensions allow extending the debugger without modifying the debugger code. This is implemented with explicit namespace packages.

To implement your own extension …

  1. Ensure that the root folder of your extension is in sys.path (add it to PYTHONPATH)
  2. Ensure that your module follows the directory structure below
  3. The __init__.py files inside the pydevd_plugin and extension folder must contain the preamble below, and nothing else
  4. Your plugin name inside the extensions folder must start with pydevd_plugin
  5. Implement one or more of the abstract base classes defined in _pydevd_bundle.pydevd_extension_api, this can be done by either inheriting from them or registering with the abstract base class

Preamble

import pkgutil
__path__ = pkgutil.extend_path(__path__, __name__)

Directory Structure

|--  root_directory-> must be on python path
|    |-- pydevd_plugins
|    |   |-- __init__.py -> must contain preamble
|    |   |-- extensions
|    |   |   |-- __init__.py -> must contain preamble
|    |   |   |-- pydevd_plugin_plugin_name.py