Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


SciTools is a Python package containing many useful tools for scientific computing in Python. The package is built on top of other widely used packages such as NumPy, SciPy, ScientificPython, Matlotlib, Gnuplot, VisIt, etc.


SciTools only strict requirements are Python v2.7 ( and Numerical Python ( Some functionality requires SciPy ( Plotting requires a plotting package, e.g., Matplotlib, Gnuplot, VisIt, or similar.


There are several different ways of installing SciTools.

Anaconda. If you have Anaconda, SciTools is available as a conda package:

conda install --channel johannr scitools

Normal install ([, ... ] means optional). First check out the scitools package from GitHub: Then go to the scitools directory and run

 python install [,--prefix=$PREFIX]

This install makes SciTools use Matplotlib as plotting engine, if a a working Matplotlib is found. Otherwise Gnuplot is used (which requires both the Gnuplot program in C and the Python interface to be installed). If neither Matplotlib nor Gnuplot is found, Matplotlib is still used as default plotting engine. (The rest of SciTools will work well, of course.)

Installing Matplotlib is easy on most platforms: just download the tarball, pack it out, and run python install.

You can explicitly specify the desired plotting engine on the command line, using the --easyviz_backend option:

 python install --easyviz_backend gnuplot [,--prefix=$PREFIX]

The default plotting engine is specified in the file scitools.cfg in the scitools package directory, and the --easyviz_backend option leads to an automatic edit of the "backend" line in the [easyviz] section of that configuration file.

Don't edit the scitools.cfg file manually before installation (use the --easyviz_backend option) because will override your edits of the easyviz backend. However, all other edits of the configuration file can be edited. For example, the Matplotlib GUI is set to TkAgg (i.e., using Tkinter, which is standard in most Python installations). The GUI can be set to other values, such as Qt4Agg (provided you have Qt4 and a Python interface to it).

After SciTools is installed, you may edit the installed version of scitools.cfg, or (better) have your own .scitools.cfg file in your home directory.

Setuptools using eggs. First build the egg with the following command

 python [, egg_info --tag-svn-revision ] bdist_egg

The --easyviz_backend option can be used, as described above, to change the default plotting engine.

Then install the created egg using easy_install

 easy_install [, --prefix=$PREFIX] dist/Scitools-0.7-py2.6.egg

(Version numbers of SciTools and Python in this filename may vary.)

Debian/Ubuntu packages. If you have Debian, or a Debian based platform like Ubuntu, you can do

 sudo apt-get install python-scitools

as SciTools is now a part of Debian. NOTE: The Debian packages are often old - it is better to rely on checking out the repo and running

Configuration File

The behavior of many parts of SciTools and in particular the subpackage Easyviz (for plotting) can be controlled in a configuration file. Please read the subsection "Setting Parameters in the Configuration File" under the section "Advanced Easyviz Topics" in the Easyviz tutorial (pydoc scitools.easyviz will show the tutorial). In particular, if you use Matplotlib as the default plotting engine, you may want to turn on the use of LaTeX for rendering legends, titles, and numbers. By default, LaTeX is turned off when SciTools is installed. It is easy to change this by locating the scitools.cfg file in the folder where the SciTools package is installed and edit the line with text.usetex in the [matplotlib] section of this file. A better solution is to copy the system scitools.cfg file to .scitools.cfg in your home folder and edit that file. You can also change the GUI used by Matplotlib. Users who do not apply Matplotlib for plotting will seldom need to edit the configuration file.


SciTools is licensed under the new BSD license, see the LICENSE file. and are licensed under GPL, however, permission is granted by Allen Downey to include these under a BSD license.


SciTools was initially mainly developed by Hans Petter Langtangen for his book "Python Scripting for Computational Science" (Springer, 1st edition 2003, 3rd edition 2009). The Easyviz package was mainly developed by Johannes H. Ring Johannes H. Ring has been the principal maintainer of SciTools. The package was extended for the book "A Primer on Scientific Programming with Python", bu H. P. Langtangen, 4th edition, Springer, 2014.

Some modules included in SciTools are written by others:

Code contributors include:


Additional scientific computing functionality in Python - extensions to NumPy/SciPy++







No packages published