Spyder[1] – wieloplatformowe zintegrowane środowisko programistyczne (ang. IDE, Integrated Development Environment), udostępnione na zasadach otwartego oprogramowania (ang. open source) przeznaczone do programowania naukowego w języku Python. Środowisko Spydera również zostało napisane w języku Python. Spyder integruje w sobie wiele istotnych pakietów z naukowego zbioru pakietów Pythona, w tym: NumPy[2], SciPy[3], matplotlib[4], pandas[5], IPython[6], SymPy[7] oraz Cython[8], które również są dostępne na zasadach otwartego oprogramowania[9]. Spyder jest wydawany na otwartej licencji MIT[10].
Spyder został opracowany w 2009 r. przez Pierre’a Rybauta. Od roku 2012 jest utrzymywany i stale ulepszany przez zespół naukowców-programistów Pythona i społeczność.
Środowisko Spyder można rozszerzać poprzez wtyczki dostarczane przez twóców Spydera lub innych programistów[11], zawiera wsparcie dla interaktywnych narzędzi do inspekcji danych oraz instrumenty introspekcyjne i zapewniające jakość kodu Pythona, takie jak: Pyflakes[12], Pylint[13] i Rope[14]. Spyder jest dostępny na różnych platformach systemowych: Windows, Linux, macOS, również poprzez środowiska Anaconda[15], MacPorts[16],
Spyder wykorzystuje do swojego graficznego interfejsu użytkownika (ang. GUI, Graphical User Interface) bibliotekę Qt i jest zaprojektowany do korzystania z nakładek na tę bibliotekę: PyQt[17] lub PySide[18][19]. QtPy, cienka warstwa abstrakcji opracowana w ramach projektu Spyder, a później zaadaptowana przez wiele innych pakietów, zapewnia elastyczność korzystania z dowolnego backend-u[20].
Cechy charakterystyczne środowiska Spyder:
- Edytor z podświetlaniem składni, introspekcją, uzupełnianiem kodu.
- Obsługa wielu konsol IPython.
- Możliwość przeglądania i edytowania zmiennych z poziomu graficznego interfejsu użytkownika.
- Okienko pomocy, które może pobierać automatycznie lub na żądanie, teksty pomocy na temat funkcji, klas i metod.
- Debugger połączony z IPdb[21] w celu możliwości wykonywania programu krok po kroku.
- Statyczna analiza kodu obsługiwana przez Pylint[13].
- Profiler działający w czasie rzeczywistym, służący do testowania wydajności kodu.
- Wsparcie projektu, umożliwiające jednoczesną pracę nad wieloma pracami rozwojowymi.
- Wbudowany eksplorator plików do interakcji z systemem plików i zarządzania projektami.
- Funkcja „Znajdź w plikach”, umożliwiająca pełne wyszukiwanie za pomocą wyrażeń regularnych w wybranym zakresie.
- Przeglądarka pomocy online, umożliwiająca użytkownikom wyszukiwanie i przeglądanie dokumentacji Pythona i pakietów wewnątrz środowiska Spydera.
- Dziennik historii, rejestrujący każde polecenie użytkownika wprowadzone we wszystkich konsolach.
- Konsola wewnętrzna, umożliwiająca introspekcję i sterowanie własnymi operacjami Spydera.
Dostępne wtyczki:
- Spyder-Unittest – integracja popularnych frameworków testowych Pytest, Unittest i Nose ze Spyderem.
- Spyder-Notebook – umożliwia przeglądanie i edycję plików notatnika Jupyter wewnątrz środowiska Spydera.
- Spyder-Reports – umożliwia użycie piśmiennych technik programistycznych w Pythonie.
- Spyder-Terminal – dodaje możliwość otwierania, sterowania i zarządzania powłokami konsolowymi wielu systemów wewnątrz środowiska Spydera.
- Spyder-Vim – zawiera komendy i skróty klawiszowe, które emulują edytor tekstowy Vim.
- Spyder-AutoPEP8 – pozwala na automatyczne formatowanie kodu programu w stylu zgodnym ze standardem PEP8[22].
- Spyder-Line-Profiler i Spyder-Memory-Profiler – rozszerzenie wbudowanej funkcjonalności profilowania, w tym testowania pojedynczych linii kodu i pomiaru wykorzystania pamięci.
- ↑ Strona domowa Spyder: https://www.spyder-ide.org/.
- ↑ NumPy – podstawowy pakiet dla obliczeń naukowych w języku Python. Strona domowa: http://www.numpy.org/.
- ↑ SciPy – podstawowa biblioteka obejmująca zestaw procedur i funkcji numerycznych z obszarów: interpolacji, całkowania, optymalizacji, algebry liniowej i statystyki. Strona domowa: https://www.scipy.org/scipylib/index.html.
- ↑ Matplotlib – biblioteka języka Python zawierająca procedury i funkcje do kreślenia wykresów. Strona domowa: https://matplotlib.org/.
- ↑ Pandas – biblioteka języka Python przeznaczona do analizy danych. Strona domowa: https://pandas.pydata.org/index.html.
- ↑ IPython (ang. Interactive Python)- potężna, interakcyjna powłoka konsolowa dla języka Python. Strona domowa: http://ipython.org/.
- ↑ SymPy – biblioteka języka Python obejmująca funkcje i procedury z zakresu matematyki i obliczeń symbolicznych. Strona domowa: https://www.sympy.org/en/index.html.
- ↑ Cython – język programowania ułatwiający pisanie rozszerzeń w języku C dla Pythona. Strona domowa: https://cython.org/.
- ↑ „Spyder review”. Tech World. 2010-09-08.
- ↑ Licencja MIT dla Spyder na GitHub: https://github.com/spyder-ide/spyder/blob/master/LICENSE.txt.
- ↑ SpyderPlugins – spyderlib – Plugin development – Spyder is the Scientific PYthon Development EnviRonment – Google Project Hosting. code.google.com. [zarchiwizowane z tego adresu (2013-10-24)]. code.google.com.
- ↑ Pyflakes – analizator programów źródłowych w języku Python pod kątem błędów. Strona domowa: https://github.com/PyCQA/pyflakes.
- ↑ a b Pylint – narzędzie wyszukujące błędy w kodzie w języku Python. Strona domowa: https://www.pylint.org/.
- ↑ Rope – refaktoryzacyjna biblioteka języka Python. Strona domowa: https://github.com/python-rope/rope.
- ↑ Anaconda – Dystrybucja i środowisko języka Python dedykowane dla naukowców tworzące spójny „ekosystem” zawierające niezbędne biblioteki i przydatne aplikacje (m.in. Spyder, glueviz, IPython, Orange Data Analytics, Visual Studio Editor, Jupyter Notebook). Strona domowa: https://www.anaconda.com/.
- ↑ MacPorts – projekt FLOSS upraszczający instalację innego otwartego oprogramowania na systemach OS X i Darwin,. Strona domowa: https://www.macports.org/.
- ↑ PyQt – nakładka na bibliotekę Qt umożliwiająca tworzenie interfejsu graficznego dla programów komputerowych pisanych w języku Python. Strona domowa: https://www.riverbankcomputing.com/software/pyqt/intro.
- ↑ PySide – nakładka na bibliotekę Qt. Strona domowa: https://wiki.qt.io/PySide.
- ↑ „Spyder runtime dependencies”.
- ↑ „QtPy: Abtraction layer for PySide/PyQt4/PyQt5”.
- ↑ IPdb – biblioteka dostarczające funkcje dostępowe do debuggera IPython. Strona domowa: https://github.com/gotcha/ipdb.
- ↑ PEP8 – standard stylu kodowania w języku Python:https://www.python.org/dev/peps/pep-0008/.