{{Short description|IDE for scientific programming in Python}} {{Infobox software | name = Spyder | logo = {{Dark mode switch|250px|250px|logo}} | 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}}<ref name="A_2017">{{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}}</ref><ref name="B_2009">{{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}}</ref> | 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.<ref name="byu">{{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}}</ref><ref name="techworld">{{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 }}</ref> Created by Pierre Raybaut<ref name="F_2024"/> and released in 2009<ref name="A_2017"/><ref name="B_2009"/> under the MIT license,<ref name="license">{{cite web |url=https://github.com/spyder-ide/spyder/blob/master/LICENSE.txt |title=Spyder license|website=GitHub }}</ref> 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,<ref name="google">{{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 }}</ref> and includes support for interactive tools for data inspection and embeds Python-specific code quality assurance and introspection instruments, such as Pyflakes, Pylint<ref name="python">{{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 }}</ref> and Rope.<ref name="ubuntu">{{cite web |url=https://apps.ubuntu.com/cat/applications/oneiric/spyder/reviews/ |title=Reviews for spyder |publisher=apps.ubuntu.com |accessdate=9 February 2014}}</ref><ref name="fedora">{{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 }}</ref> Spyder uses Qt for its GUI and is designed to use either of the PyQt or PySide Python bindings.<ref name="C_2015">{{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 = }}</ref> QtPy, a thin abstraction layer developed by the Spyder project and later adopted by multiple other packages, provides the flexibility to use either backend.<ref name="D_2015">{{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 }}</ref>
==History== Initially created and developed by Pierre Raybaut,<ref name="F_2024">{{cite news |date=2024 |title=About |url=https://www.spyder-ide.org/about/ |work=spyder-ide.org |location= |access-date=December 2, 2024}} </ref> it was published on October 18, 2009<ref name="A_2017"/><ref name="B_2009"/> under the MIT license.<ref name="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.<ref name="E_2024">{{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}} </ref> Carlos Cordoba was listed as the lead maintainer of the software, with Daniel Althiz as co-maintainer.<ref name="F_2024"/>
==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.<ref name="byu"/><ref name="techworld"/>
Spyder is extensible with first-party and third-party plugins,<ref name="google"/> includes support for interactive tools for data inspection and embeds Python-specific code quality assurance and introspection instruments, such as Pyflakes, Pylint<ref name="python"/> 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.<ref name="ubuntu"/><ref name="fedora"/>
Spyder uses Qt for its GUI and is designed to use either of the PyQt or PySide Python bindings.<ref name="C_2015"/> QtPy, a thin abstraction layer developed by the Spyder project and later adopted by multiple other packages, provides the flexibility to use either backend.<ref name="D_2015"/>
== Features == Features include:<ref name="features">{{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 }}</ref>
*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:<ref name="plugins">{{cite web|url=https://github.com/spyder-ide |title=Spyder Plugins List |publisher=Spyder Project |access-date=2018-07-30 }}</ref>
*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}} *Comparison of integrated development environments for Python
== References == {{Reflist|30em}}
== External links == {{commons category|Spyder (software)}} *{{Official website}} *[https://docs.spyder-ide.org/ Documentation] *{{GitHub|spyder-ide/spyder}}
{{Integrated development environments}}
Category:Free integrated development environments Category:Free integrated development environments for Python Category:Free mathematics software Category:Free science software Category:Python (programming language) development tools Category:Software programmed in Python Category:Software using the MIT license