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.