Spyder (software)

{{Short description|IDE for scientific programming in Python}}

{{Infobox software

| name = Spyder

| logo = Spyder logo.svg

| logo alt = Spyder IDE logo and wordmark

| screenshot = Spyder-windows-screenshot.png

| caption = Screenshot of Spyder on Windows

| author = Pierre Raybaut

| developer = [https://github.com/spyder-ide/spyder/graphs/contributors Spyder project contributors]

| released = {{Start date and age|2009|10|18|df=yes}}{{cite web |url=https://github.com/spyder-ide/spyder/tree/v1.0.0 |title=spyder-ide/spyder at v1.0.0 |publisher=GitHub |accessdate=3 April 2017}}{{cite web |url=https://www.riverbankcomputing.com/pipermail/pyqt/2009-October/024764.html |title=(Python)(ANN) Spyder v1.0.0 released |date=18 October 2009}}

| latest release version = {{wikidata|property|edit|reference|P348}}

| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}

| latest preview version =

| latest preview date =

| programming language = Python

| operating system = Cross-platform

| platform = Qt, Windows, macOS, Linux

| genre = Integrated development environment

| license = MIT

}}

Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, as well as other open-source software.{{cite web |url=http://web.ics.purdue.edu/~smit1447/blog/?p=24 |url-status=dead |archive-url=https://web.archive.org/web/20141010221143/http://web.ics.purdue.edu:80/~smit1447/blog/?p=24 |archive-date=2014-10-10 |title=Migrating from MATLAB to Python |website=Greener Engineering |publisher=et.byu.edu |accessdate=9 February 2014}}{{cite web |url=http://review.techworld.com/applications/3238833/spyder-review/ |title=Spyder review |publisher=review.techworld.com |accessdate=9 February 2014 |archive-date=3 December 2013 |archive-url=https://web.archive.org/web/20131203014000/http://review.techworld.com/applications/3238833/spyder-review/ |url-status=dead }} Created by Pierre Raybaut and released in 2009 under the MIT license,{{cite web |url=https://github.com/spyder-ide/spyder/blob/master/LICENSE.txt |title=Spyder license|website=GitHub }} since 2012 Spyder has been maintained and continuously improved by Python developers and the community.{{cn|date=December 2024}}

Spyder is extensible with first-party and third-party plugins,{{cite web |url=http://code.google.com/p/spyderlib/wiki/SpyderPlugins |title=SpyderPlugins – spyderlib – Plugin development – Spyder is the Scientific PYthon Development EnviRonment |access-date=9 February 2014 |url-status=dead |archive-url=https://web.archive.org/web/20131024165518/http://code.google.com/p/spyderlib/wiki/SpyderPlugins |archive-date=24 October 2013 }} and includes support for interactive tools for data inspection and embeds Python-specific code quality assurance and introspection instruments, such as Pyflakes, Pylint{{cite web |url=http://packages.python.org/spyder/pylint.html |title=Pylint extension – Spyder 2.2 documentation |publisher=packages.python.org |accessdate=9 February 2014 |archive-date=1 February 2014 |archive-url=https://web.archive.org/web/20140201022109/http://packages.python.org/spyder/pylint.html |url-status=dead }} and Rope.{{cite web |url=https://apps.ubuntu.com/cat/applications/oneiric/spyder/reviews/ |title=Reviews for spyder |publisher=apps.ubuntu.com |accessdate=9 February 2014}}{{cite web |url=http://fedora.cz/seznameni-s-python-ide-spyder/ |title=Seznámení s Python IDE Spyder |publisher=fedora.cz |access-date=9 February 2014 |url-status=dead |archive-url=https://web.archive.org/web/20130820121204/http://fedora.cz/seznameni-s-python-ide-spyder/ |archive-date=20 August 2013 }} Spyder uses Qt for its GUI and is designed to use either of the PyQt or PySide Python bindings.{{cite web |url = https://github.com/spyder-ide/spyder/blob/master/README.md#runtime-dependencies |title = Spyder runtime dependencies |date = 21 February 2015 |accessdate = |website = |publisher = github.com |last = |first = }} QtPy, a thin abstraction layer developed by the Spyder project and later adopted by multiple other packages, provides the flexibility to use either backend.{{cite web |url = https://github.com/spyder-ide/qtpy/blob/master/README.md |title = QtPy: Abstraction layer for PySide/PyQt4/PyQt5 |date = 23 October 2015 |accessdate = 28 December 2015 |publisher = github.com }}

History

Initially created and developed by Pierre Raybaut,{{cite news |date=2024 |title=About |url=https://www.spyder-ide.org/about/ |work=spyder-ide.org |location= |access-date=December 2, 2024}} it was published on October 18, 2009 under the MIT license.

Since 2012 Spyder has been maintained and continuously improved by a team of scientific Python developers and the community.{{cn|date=December 2024}} As of 2024, the Spyder website lists the Chan Zuckerberg Initiative and NumFOCUS as their two major sponsors, also noting donations received from users through Open Collective.{{cite news |date=2024 |title=Spyder website main page |url=https://www.spyder-ide.org/ |work=spyder-ide.org |location= |access-date=December 2, 2024}} Carlos Cordoba was listed as the lead maintainer of the software, with Daniel Althiz as co-maintainer.

Software

It is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, including NumPy, SciPy, Matplotlib, pandas, IPython, SymPy and Cython, as well as other open-source software.

Spyder is extensible with first-party and third-party plugins, includes support for interactive tools for data inspection and embeds Python-specific code quality assurance and introspection instruments, such as Pyflakes, Pylint and Rope. It is available cross-platform through Anaconda, on Windows, on macOS through MacPorts, and on major Linux distributions such as Arch Linux, Debian, Fedora, Gentoo Linux, openSUSE and Ubuntu.

Spyder uses Qt for its GUI and is designed to use either of the PyQt or PySide Python bindings. QtPy, a thin abstraction layer developed by the Spyder project and later adopted by multiple other packages, provides the flexibility to use either backend.

Features

Features include:{{cite web |url=https://docs.spyder-ide.org/overview.html |title=Spyder Documentation – Features Overview |publisher=Spyder Project |access-date=2018-07-30 |url-status=dead |archive-date=2019-01-23 |archive-url=https://web.archive.org/web/20190123054617/http://docs.spyder-ide.org/overview.html }}

  • An editor with syntax highlighting, introspection, code completion
  • Support for multiple IPython consoles
  • The ability to explore and edit variables from a GUI
  • A Help pane able to retrieve and render rich text documentation on functions, classes and methods automatically or on-demand
  • A debugger linked to IPdb, for step-by-step execution
  • Static code analysis, powered by Pylint
  • A run-time Profiler, to benchmark code
  • Project support, allowing work on multiple development efforts simultaneously
  • A built-in file explorer, for interacting with the filesystem and managing projects
  • A "Find in Files" feature, allowing full regular expression search over a specified scope
  • An online help browser, allowing users to search and view Python and package documentation inside the IDE
  • A history log, recording every user command entered in each console
  • An internal console, allowing for introspection and control over Spyder's own operation

Plugins

Available plugins include:{{cite web|url=https://github.com/spyder-ide |title=Spyder Plugins List |publisher=Spyder Project |access-date=2018-07-30 }}

  • Spyder-Unittest, which integrates the popular unit testing frameworks Pytest, Unittest and Nose with Spyder
  • Spyder-Notebook, allowing the viewing and editing of Jupyter Notebooks within the IDE
  • Download Spyder Notebook
  • Using conda: conda install spyder-notebook -c spyder-ide
  • Using pip: pip install spyder-notebook
  • Spyder-Reports, enabling use of literate programming techniques in Python
  • Spyder-Terminal, adding the ability to open, control and manage cross-platform system shells within Spyder
  • Download Spyder Terminal
  • Using conda: conda install spyder-terminal -c spyder-ide
  • Using pip: pip install spyder-terminal
  • Spyder-Vim, containing commands and shortcuts emulating the Vim text editor
  • Spyder-AutoPEP8, which can automatically conform code to the standard PEP 8 code style
  • Spyder-Line-Profiler and Spyder-Memory-Profiler, extending the built-in profiling functionality to include testing an individual line, and measuring memory usage

See also

{{Portal|Free and open-source software}}

References

{{Reflist|30em}}