Follow Us

We use cookies to provide you with a better experience. If you continue to use this site, we'll assume you're happy with this. Alternatively, click here to find out how to manage these cookies

hide cookie message


Programming Software

Part of a Group Review

Spyder review

Article comments

Spyder is another Python IDE written in Python. It has been verified to run on Windows, Mac, and Linux. Spyder is really a kind of numerical package that just happens to use Python as its scripting language. In fact, Spyder's creator, Pierre Raybaut, purposefully incorporated features in Spyder to make its behaviour similar to MATLAB's and designed the Spyder workspace to look like MATLAB.

Spyder requires PyQt, and at least PyQt4. To use Spyder as it is really intended, you should also download and install pylint, NumPy, SciPy and matplotlib.

The version I tested was 1.0.3. I used Python 2.6 in my testing, though Spyder's creator informed me that Spyder should work with Python 3.1, and he had reports of users running Spyder in a 3.x-level Python. However, he indicated that, for scientific and mathematical users, there is little different between Python 2.x and Python 3.x. In addition, as of this writing, NumPy and SciPy had not been ported to Python 3. (The development version of NumPy supports Python 3, and a release version is expected in the fall.)

Spyder has three startup levels: All, Basics and Light. The startup level controls which components are imported when the IDE loads. All imports everything: the math libraries, os, sys, re, time, and os.path. Basics imports the math libraries only, and Light turns off all the add-ons. If you start the Light version, Spyder will not have access to NumPy, SciPy and matplotlib, though you can manually import those libraries via Spyder's interactive console at a later time.

Spyder's interactive console opens automatically in a pane on the right hand side of the IDE. Not only can you enter Python code, but the console will accept shell commands if you precede an entry line with !. For example, to get a local directory, enter !dir. The console also provides a history log of past commands, available within a separate tab. Select the tab, and you can cut and paste entries from the past.

Spyder also provides an object inspector that executes in the context of the console. Any objects created in the console can be examined in the inspector. More interesting, though, is the workspace view, which appears at first glance to be a kind of global variable browser for the interactive console, showing all global variables defined in the console, as well as their data type, size and value.

Right-click on a global variable's value field in the workspace, and a pop-up menu appears. Some of its selections are obvious, such as duplicate and delete. Others are not so obvious. You can, for example, select Plot for either Python or NumPy numeric arrays, and a line graph is displayed for the data. Or you can select Show Image for a 2D numeric array, and Spyder will display a pseudo-colour representation of the array, which is completely cool if you're not expecting it.


You can launch object specific editors from within the console. Just enter oedit(<obj>) and a GUI editor will open, allowing you to edit the contents of <obj> where <obj> can be a list, a tuple, a str, or a numpy.array of one or two dimensions. It's important to realise, though, that oedit() does not edit the object in place. To have your changes stick, you must instantiate a new object and place the output reference of the oedit() call into this new object.

Spyder's editor supports multiple languages, with color coding for syntactic elements of C, C++ and Fortran. The reason for this capability derives from Spyder's origin as a development platform for science and math. Extensions to Python are often written in C/C++ and Fortran, in fact, much of NumPy's calculation core is written in C. The multilanguage support allows developers to at least create the source for extensions without leaving the Spyder environment.

The editor does provide rudimentary code completion. Enter an object, follow with a . (a period), and Spyder will pop up a list of allowed methods. Begin typing a method and another pop-up appears, listing the allowed arguments and data types as well as the method's return type. You can also run the PyFlakes lint-like tool on your source; PyFlakes locates a number of common syntax errors in the source.

Unfortunately, there is not much in the documentation about debugging. Also, while there are more than a half-dozen different Run variants (Run in interactive console, Re-run last script, Run selection or current block, and more), there's only one Debug selection. Choose Debug, and Spyder opens a dialog that lets you enter command-line arguments, and then simply executes the current source file in Python's debugger, pdb. Obviously, application debugging is not high on Spyder's to-do list.


More from Techworld

More relevant IT news


Send to a friend

Email this article to a friend or colleague:

PLEASE NOTE: Your name is used only to let the recipient know who sent the story, and in case of transmission error. Both your name and the recipient's name and address will not be used for any other purpose.

Techworld White Papers

Choose – and Choose Wisely – the Right MSP for Your SMB

End users need a technology partner that provides transparency, enables productivity, delivers...

Download Whitepaper

10 Effective Habits of Indispensable IT Departments

It’s no secret that responsibilities are growing while budgets continue to shrink. Download this...

Download Whitepaper

Gartner Magic Quadrant for Enterprise Information Archiving

Enterprise information archiving is contributing to organisational needs for e-discovery and...

Download Whitepaper

Advancing the state of virtualised backups

Dell Software’s vRanger is a veteran of the virtualisation specific backup market. It was the...

Download Whitepaper

Techworld UK - Technology - Business

Innovation, productivity, agility and profit

Watch this on demand webinar which explores IT innovation, managed print services and business agility.

Techworld Mobile Site

Access Techworld's content on the move

Get the latest news, product reviews and downloads on your mobile device with Techworld's mobile site.

Find out more...

From Wow to How : Making mobile and cloud work for you

On demand Biztech Briefing - Learn how to effectively deliver mobile work styles and cloud services together.

Watch now...

Site Map

* *