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
andjedi
):- 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 bypycodestyle
) * 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 bySphinx
)
- 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
- MATLAB-like
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.