Overview

Spyder, the Scientific Python Development Environment, includes the following key features:

  • Editor:

    • Customizable syntax highlighting themes

    • Debugging breakpoints and conditional breakpoints (through ipdb integration)

    • Interactive execution: Run line/selection, run cell, run file, re-run and debug

    • Run configuration settings:

      • Working directory selection

      • Command line options

      • Run in Current/dedicated/external console choice

      • Automatically clear variables or enter debugging

    • Outline Explorer: Navigate cells, functions, classes, blocks, and more

    • Real-time code introspection features (powered by rope and jedi):

      • On-demand (Tab) and “dot” automatic code completion

      • Automatic popup calltips showing function signatures

      • Go-to-definition for any symbol: Functions, classes, attributes, etc. (Ctrl-Click or Ctrl-G by default)

    • Occurrence highlighting: Select or double-click any word to show all other instances throughout the current document

    • On-the-fly automatic formatters (optional):

      • Automatic insertion of closing quotes parentheses, braces and brackets

      • Automatic indentation after ‘else’, ‘elif’, ‘finally’, etc.

      • Smart auto-indentation based on code structure

      • Automatic insertion of colons after for, if, def, etc.

      • Automatically fix mixed indentation, EOL characters and trailing spaces

    • Real-time code analysis: * Errors/warnings/problems (powered by pyflakes) * PEP 8 and code style (powered by pycodestyle) * Code annotation parsing and “Todo lists” (TODO, FIXME, XXX, etc.)

  • IPython Console:

    • Any number of individual consoles, each executed in a separate, isolated processes

    • Each console uses the full IPython kernel as a backend with a light GUI frontend

    • Supports all of the powerful IPython magic commands and functionality

    • Automatic code completion and calltips, and automatic link to Help

    • Range of code run options and interactivity

    • Debugging integration with enhanced ipdb debugger and the Editor

    • Inline display of Matplotlib graphics (optional)

    • The User Module Reloader, automatically re-importing modified source files

  • Variable Explorer:

    • Can list all global variables, functions, classes, and other objects, or filter them by several criteria

    • GUI-based editors for numerous data types (numeric, strings, collections, NumPy arrays, Pandas DataFrames, dates/times, images, and more)

    • Import/export data or an entire session from/to many formats (text, csv, NumPy files, MATLAB files)

    • Interactive data visualization options (plot, histogram, image…) using Matplotlib

  • Help:

    • Provides documentation or source code for any Python object (class, function, module…)

    • Can be triggered manually, on demand (Ctrl-I by default) or automatically on typing a left parenthesis after a function name (optional)

    • Real-time rendering and rich HTML display of the popular numpydoc docstring format (powered by Sphinx)

  • Static Code Analysis: Detects an array of style issues, bad practices, potential bugs, and other problems with your code (powered by pylint)

  • Profiler: Measures the performance impact of every function in a file to identify bottlenecks and aid optimization

  • Projects: Allows for easy saving and restoring of settings, sessions and setup for working on multiple development efforts simultaneously

  • File Explorer: Integrated filesystem viewing supporting many common operations

  • Find in Files: Find string occurrences in a file, directory, or entire project with full support for powerful regular expressions and excluded locations

  • Online Help: Search and browse rich HTML documentation on installed Python modules, packages, functions, classes, builtins and more, including your own

  • History Log: Chronologically records every command entered into any Spyder console with timestamps, syntax highlighting and de-duplication

  • Internal Console: Provides access to viewing, exploring and controlling Spyder’s own operation

  • Preferences:

    • Fully customizable keyboard shortcuts editor

    • Selection of a custom Python interpreter to use for consoles

    • Choice of 10 built-in syntax coloring theme, or create your own

    • Toggle automatic editor and console introspection, analysis and helper features

    • Options to use a variety of graphics backends and display preferences

    • Much more…

  • General Features:

    • MATLAB-like PYTHONPATH management dialog

    • User environment variables viewer/editor (Windows-only)

    • Handy links to useful resources and documentation (Python, Matplotlib, NumPy, Scipy, Qt, IPython, etc.)

    • Interactive tour, tutorial and shortcut cheat sheet for new users

Beyond its many built-in features, Spyder’s abilities can be extended even further via its plugin system and API. Spyder can also be used as a PyQt5 extension library, allowing you to build upon its functionality and embed its components, such as the interactive console, in your own software.