Git Product home page Git Product logo

spyder's Introduction

Spyder — The Scientific Python Development Environment

Copyright © 2009–2018 Spyder Project Contributors

license pypi version Join the chat at https://gitter.im/spyder-ide/public OpenCollective Backers OpenCollective Sponsors

Travis status AppVeyor status CircleCI Coverage Status codecov

Screenshot of Spyder's main window


Important Announcement: Spyder needs your support!

Since mid-November 2017, Anaconda, Inc has stopped funding Spyder development, after doing so for the past 18 months. Therefore, without additional funds, development will shift to maintaining Spyder 3 at a slower pace than before, while working toward an eventual Spyder 4 feature release sometime in the future.

However, with your contribution of effort and funding, we will be able to both continue to maintain Spyder 3 at a faster pace, and fund development of new features for Spyder 4 (such as a major overhaul to improve code completion, and a much-improved new debugger, both of which you've been requesting) at a greatly accelerated rate.

There are many ways to help with development, many of which don't require any programming, and if you're able to make a financial contribution to help support your favorite community IDE, you can donate through our OpenCollective.

We appreciate all the help you can provide us and can't thank you enough for supporting the work of the Spyder devs and Spyder development! To learn more about the current situation and our future plans, please read this page.


Overview

Spyder is a Python development environment with many features for research, data analysis, and scientific package creation:

  • Editor

    Work efficiently in a multi-language editor with a function/class browser, real-time code analysis tools (pyflakes, pylint, and pycodestyle), automatic code completion (jedi and rope), horizontal/vertical splitting, and go-to-definition.

  • Interactive console

    Multiple IPython consoles with workspace and debugging support to instantly evaluate the code written in the Editor. Spyder consoles also come with full Matplotlib integration.

  • Documentation viewer

    Render documentation in real-time with Sphinx for any class or function, whether external or user-created from either the Editor or a Console.

  • Variable explorer

    Inspect any variables, functions or objects created during your session. Editing and interaction is supported with many common types, including numeric/strings/bools, Python lists/tuples/dictionaries, dates/timedeltas, Numpy arrays, Pandas index/series/dataframes, PIL/Pillow images, and more.

  • Development tools

    Examine your code with the static analyzer, trace its execution with the interactive debugger, measure its performance with the profiler, and keep things organized with project support and a builtin file explorer.

  • Find in files

    Search for queries across multiple files in your project, with full support for regular expressions.

  • History log

    Browse an automatically de-duplicated listing of every command you run on any Spyder console.

Spyder may also be used as a PyQt5 extension library (module spyder). For example, the Python interactive shell widget used in Spyder may be embedded in your own PyQt5 application.

Documentation

You can read the Spyder documentation online at PythonHosted.

Installation

For a detailed guide to installing Spyder, please refer to our installation instructions.

The easiest way to install Spyder on any of our supported platforms is to download it as part of the Anaconda distribution, and use the conda package and environment manager to keep it and your other packages installed and up to date.

If in doubt, you should always install Spyder via this method to avoid unexpected issues we are unable to help you with; it generally has the least likelihood of potential pitfalls for non-experts, and we may be able to provide limited assistance if you do run into trouble.

Other install options exist, including:

  • The WinPython distribution for Windows
  • The MacPorts project for macOS
  • Your distribution's package manager (i.e. apt-get, yum, etc) on Linux
  • The pip package manager, included with most Python installations

However, we lack the resources to provide individual support for users who install via these methods, and they may be out of date or contain bugs outside our control, so we recommend the Anaconda version instead if you run into issues.

Troubleshooting

Before posting a report, please carefully read our Troubleshooting Guide and search the issue tracker for your error message and problem description, as the great majority of bugs are either duplicates, or can be fixed on the user side with a few easy steps. Thanks!

Contributing

Everyone is welcome to help with Spyder. Please read our contributing instructions to get started!

Running from a Github clone

Spyder can be run directly from the source code, hosted on the Spyder github repo. You may want to do this for fixing bugs in Spyder, adding new features, learning how Spyder works or to try out development versions before they are officially released.

If using conda (strongly recommended), this can be done by running the following from the command line (the Anaconda Prompt, if on Windows):

conda install spyder
conda remove spyder
git clone https://github.com/spyder-ide/spyder.git
cd spyder
python bootstrap.py

Alternatively, you can use pip to install PyQt5 separately and the other runtime dependencies listed below. However, beware: this method is recommended for experts only, and you'll need to solve any problems on your own. See the installation instructions for more details.

Dependencies

Important Note: Most or all of the dependencies listed below come with Anaconda and other scientific Python distributions, so you don't need to install them seperatly in those cases.

Build dependencies

When installing Spyder from its source package, the only requirement is to have a Python version greater than 2.7 or 3.4 (Python <=3.3 is no longer supported).

Runtime dependencies

  • Python 2.7 or 3.4+: The core language Spyder is written in and for.
  • PyQt5 5.2+: Python bindings for Qt, used for Spyder's GUI.
  • qtconsole 4.2.0+: Enhanced Python interpreter.
  • Rope 0.9.4+ and Jedi 0.11.0+: Editor code completion, calltips and go-to-definition.
  • Pyflakes: Real-time code analysis.
  • Sphinx: Rich text mode for the Help pane.
  • Pygments 2.0+: Syntax highlighting for all file types it supports.
  • Pylint: Static code analysis.
  • Pycodestyle: Real-time code style analysis.
  • Psutil: CPU and memory usage on the status bar.
  • Nbconvert: Manipulation of notebooks in the Editor.
  • Qtawesome 0.4.1+: To have an icon theme based on FontAwesome.
  • Pickleshare: Show import completions on the Python consoles.
  • PyZMQ: Run introspection services asynchronously.
  • QtPy 1.2.0+: Abstraction layer for Python Qt bindings so that Spyder can run on multiple Qt bindings and versions.
  • Chardet: Character encoding auto-detection in Python.
  • Numpydoc: Used by Jedi to get function return types from Numpydocstrings.
  • Cloudpickle: Serialize variables in the IPython kernel to send to Spyder.

Optional dependencies

  • Matplotlib: 2D/3D plotting in the Python and IPython consoles.
  • Pandas: View and edit DataFrames and Series in the Variable Explorer.
  • Numpy: View and edit 2- or 3-dimensional arrays in the Variable Explorer.
  • SymPy: Symbolic mathematics in the IPython console.
  • SciPy: Import Matlab workspace files in the Variable Explorer.
  • Cython: Run Cython files in the IPython console.

Backers

Support us with a monthly donation and help us continue our activities.

Backers

Sponsors

Become a sponsor to get your logo on our README on Github.

Sponsors

More information

Download Spyder (with Anaconda)

Spyder Github

Troubleshooting Guide and FAQ

Development Wiki

Gitter Chatroom

Google Group

Support Spyder on OpenCollective

spyder's People

Contributors

ccordoba12 avatar pierreraybaut avatar goanpeca avatar rlaverde avatar blink1073 avatar dalthviz avatar sylvaincorlay avatar jnsebgosselin avatar andfoy avatar cam-gerlach avatar techtonik avatar mariacamilarg avatar dhoegh avatar jedludlow avatar jitseniesen avatar csabella avatar nodd avatar prikers avatar malliwi88 avatar timhoffm avatar dougthor42 avatar impact27 avatar bcolsen avatar pwoosam avatar fangohr avatar jgoutin avatar qlogin avatar hugobuddel avatar flying-sheep avatar larsoner avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.