Installation requirements

The following packages are required for basic ASE functionality:

  1. Python2 version 2.6 or newer. Python3 is not supported yet.
  2. NumPy.

It is highly recommended (but not required) to install also these:

  1. matplotlib.
  2. libpng.
  3. pygtk.
  4. SciPy.

Matplotlib and libpng are needed for writing png files, and together with pygtk are needed for ASE’s simple GUI (called ase-gui, see ase.gui). Some of these packages may already be installed on your system.

Specific information for different operating systems is provided at Installation.


Latest stable release

The latest stable release can be obtained from SVN or as a tar-file.


The recommended installation path is $HOME.

When using svn please set the following variable:

  • bash:

    export ASE_TAGS=
  • csh/tcsh:

    setenv ASE_TAGS
Release Date Retrieve as svn checkout Retrieve as tar-file
3.8.1 Nov 22 2013 svn co -r 3440 $ASE_TAGS/3.8.1 ase-3.8.1 python-ase-
3.8.0 Oct 22 2013 svn co -r 3420 $ASE_TAGS/3.8.0 ase-3.8.0 python-ase-
3.7.1 May 16 2013 svn co -r 3184 $ASE_TAGS/3.7.1 ase-3.7.1 python-ase-
3.7.0 May 13 2013 svn co -r 3168 $ASE_TAGS/3.7.0 ase-3.7.0 python-ase-
3.6.0 Feb 24 2012 svn co -r 2515 $ASE_TAGS/3.6.0 ase-3.6.0 python-ase-
3.5.1 May 24 2011 svn co -r 2175 $ASE_TAGS/3.5.1 ase-3.5.1 python-ase-
3.4.1 Aug 11 2010 svn co -r 1765 $ASE_TAGS/3.4.1 ase-3.4.1 python-ase-
3.4.0 Apr 23 2010 svn co -r 1574 $ASE_TAGS/3.4.0 ase-3.4.0 python-ase-
3.3.1 Jan 20 2010 svn co -r 1390 $ASE_TAGS/3.3.1 ase-3.3.1 python-ase-
3.2.0 Sep 4 2009 svn co -r 1121 $ASE_TAGS/3.2.0 ase-3.2.0 python-ase-
3.1.0 Mar 27 2009 svn co -r 846 $ASE_TAGS/3.1.0 ase-3.1.0 python-ase-
3.0.0 Nov 13 2008 svn co -r 657 $ASE_TAGS/3.0.0 ase-3.0.0 python-ase-

Latest development release

The latest revision can be obtained like this:

$ svn checkout ase

or from the daily snapshot: python-ase-


The recommended checkout path is $HOME.


After performing the installation do not forget to Run the tests!

Installation on OS X

For installation with please follow instructions at Homebrew.

Installation with package manager on Linux

Install the binaries with the software package manager of your Linux distribution.

This is the preferred way to install on a Linux system.

If you prefer to install from sources follow Manual installation.

The currently supported systems include (issue the commands below as root):

  • Fedora:

    yum install -y python-ase
  • RHEL/CentOS - available after enabling

    yum install -y python-ase
  • openSUSE 13.1:

    zypper ar -f
    yast -i python-ase
    yast -i python-matplotlib # optionally
  • Debian 7.0:

    sudo bash -c 'echo "deb /" > /etc/apt/sources.list.d/home_dtufys.sources.list'
    wget && sudo apt-key add Release.key && rm Release.key
    sudo apt-get update
    sudo apt-get -y install python-ase
    sudo apt-get -y install python-matplotlib # optionally
  • Ubuntu 14.04:

    sudo bash -c 'echo "deb /" > /etc/apt/sources.list.d/home_dtufys.sources.list'
    wget && sudo apt-key add Release.key && rm Release.key
    sudo apt-get update
    sudo apt-get -y install python-ase
    sudo apt-get -y install python-matplotlib # optionally


    Alternative packages for Ubuntu are provided at Ubuntu package.

For the full list of supported distributions check


Explore the repositories - more software packages are available!


If you prefer to install manually, proceed to Manual installation, or alternatively, manually unpack the RPMS, e.g.:

# download the packages + dependencies (you can do that also manually!)
$ yumdownloader --resolve python-ase
# unpack into the current directory
$ find . -name "*.rpm" | xargs -t -I file sh -c "rpm2cpio file | cpio -idm"
# modify profile.d environment scripts
$ find . -name "*.*sh" | xargs -t -I file sh -c 'sed -i "s#PA=/usr#PA=$PWD/usr#" file'
# modify environment modules scripts
$ find . -name "*.modules" | xargs -t -I file sh -c 'sed -i "s# /usr# $PWD/usr#" file'
# make scripts executable
$ find . -name "*.*sh" | xargs -t -I file sh -c "chmod u+x file"
# source the scripts (example for bash)
$ for f in `find . -name "*.sh"`; do source $f; done
# verify the desired installation location is used
$ python -c "import ase; print ase.__file__"

This method works for all the RPM packages from the repository (like gpaw), however not for the external, distribution provided packages, which may require manually creating the environment scripts.



ASE is not yet fully functional on Windows!

On Windows the following packages need to installed. On the command prompt:


installation assumes the python TARGETDIR C:\Python27, leave also the default C:\Program Files\pythonxy.

  • pythonxy. Download the exe installer and install with:

    Python(x,y)- /Log="%TMP%\pythonxy_install.log" /S


Open Task Manager and control when the process in finished.

  • pygtk_win32. Download the msi pygtk-all-in-one installer. Specify the correct TARGETDIR and install:

    pygtk-all-in-one-2.24.2.win32-py2.7.msi TARGETDIR="%HOMEDRIVE%\Python27" ALLUSERS=1 /l*vx "%TMP%\pygtk_install.log" /passive


If performing clicking-installation make sure that the default python Windows TARGETDIR is selected.

  • Download the python-ase-win32.msi installer and install with:

    python-ase-X.X.X.win32.msi /l*vx "%TMP%\python-ase_install.log" /passive


You can build the msi ASE package on Windows with:

python bdist_msi

The msi package will be created under the dist directory.

Manual installation

After the Download of ASE source create the link to the requested version, e.g.:

  • if retrieved from svn:

    $ cd $HOME
    $ ln -s ase-3.8.0 ase
  • if retrieved as tar-file:

    $ cd $HOME
    $ tar -xf python-ase-
    $ ln -s python-ase- ase

It is sufficient to put the directory $HOME/ase in your PYTHONPATH environment variable, and the directory $HOME/ase/tools in your PATH environment variable. Do this permanently in your ~/.bashrc file:

export PATH=$HOME/ase/tools:$PATH

or your ~/.cshrc file:

setenv PATH ${HOME}/ase/tools:${PATH}

Instead of HOME, you may use any other directory.

Alternatively, you can install ASE to the user-specific site-packages directory with:

$ cd ase
$ python install --user

This way, the ASE modules are found on the python path without any explicit configuration, though you still need to ensure that $HOME/.local/bin (or on Windows, %APPDATA%/Python/Scripts) is on your PATH.

Optional, NOT recommended way of installing ASE system-wide is:

$ cd ase
$ sudo python install

This is one of the best ways to ruin a Linux system.

Run the tests

Make sure that everything works by running the test suite. This will create many files, so run the tests in a new directory (preferably using bash):

$ bash
$ mkdir /tmp/testase.$$; cd /tmp/testase.*
$ python -c "from ase.test import test; test(verbosity=2, display=True)" 2>&1 | tee testase.log


The last test ase/test/ requires closing the graphics windows to terminate the whole test-suite.


If matplotlib or pygtk is not installed, this test will fail - avoid this with display=False.

If any of the tests fail, then please send us testase.log (see Bugs!).

Video tutorial

In the video: Overview of the features of ASE, followed by a Manual installation of ASE on a Linux system.


Use “Right Click -> Play” to play.

Video not playing? Download avi file instead.