Below we describe how you properly install pyCMBS in your environment. Currently, there are three different ways to install pyCMBS
- Easy installation using pip (recommended)
- Source code installation from code repository
- Source code installation from tarball
All approaches are detailed below. Special informations for users working at the Max-Planck-Institute for Meteorology are provided in a Detailed installation guide for MPI-M users
pyCMBS is developed purely in python and is expected to be in general independent from a special operating system. The current version was however only developed on Linux and no tests at all were made on other operating systems.
pyCMBS was built to have only a small number of external dependencies. However, there is a minimum number of dependencies existing which are a required for using pyCMBS sucessfully.
Core python packages [obligatory]
Obligatory additional dependencies
For file I/O of netCDF files, there are in general two options supported at the moment. At least one interface library needs to be installed:
For an efficient data pre-processing the climate data operators are used. The core CDO’s and the corresponding python wrapper is required.
Recommended dependencies
For plotting projected data (map plots), pyCMBS currently supports two different plotting backends. These are
If you have not yet any of the above dependencies installed and are working on a Debian like operating system (e.g. Ubunutu), the easiest way to install pyCMBS is by executing the installation sequence which can be found in the file .travis.yml in the root directory of the source code.
The developers are using automatic code checking and builds and the installation sequence in the file .travis.yml is used to setup for each build a working installation.
In the following, we will summarize the different approaches to install pyCMBS.
Using pip is the easiest (and recommended) way to install pyCMBS. If you have pip not yet installed on your machine, then the first step is to install pip .
Once pip is installed, the installation of pyCMBS is as simple as:
pip install pycmbs
Check if everything is working, like described below.
You can install specific version of pycmbs from a tarball from the download site . All dependencies must have been installed before.
After you have obtained the pyCMBS code from a tarball, then first extract the archive into some new directory:
mkdir temp_dir
cd temp_dir
tar -xvf pycmbs-vx.x.x.tar.gz
This expands the tar file and you obtain a subdirectory, called pycmbs-vx.x.x
To install the package first change to the directory and then install the package using the standard python setup tools as:
cd pycmbs-vx.x.x
python setup.py install
This will install the package in your python environment. Check successful installation, like described below.
Another alternative to work with pyCMBS is to used the master branch of the code repository. The code is hosted on a github repository. All dependencies must have been installed before.
To retrieve the code do the following:
# generate some directory
mkdir pycmbs
cd pycmbs
# retrieve the code
git clone
# do installation
python setup.py install
# or as an alternative for developers, just set the PYTHONPATH
# environment variable to the pycmbs root directory and also adapt
# you systempath (PATH) such that includes the pycmbs rootdirectory
Check successful installation, like described below.
Check that installation worked properly by going through the following checklist. In case of problems, please refer to the troublesolver .
Is the pyCMBS python module loaded properly?:
python -c "from pycmbs import *; print('Welcome to pyCMBS')"
This should give you a short welcome message, but no error messages.
Is the benchmarking script working properly?:
pycmbs-benchmarking.py
This will you give a short message like:
*******************************************
* WELCOME to pycmbs.py *
* Happy benchmarking ... *
*******************************************
and will end with an error message that the configuration file is not found (this is o.k.)
If you see the above, the installation has worked! Congratulations!
3. Check also the proper installation of the cdo’s and the cdo.py interface, as this is a prerequesite of beeing able to properly work with pyCMBS:
python -c "from cdo import *; cdo=Cdo(); print 'If you see this, everything went right ... have fun with pyCMBS and CDOs'"
Again, this should give you a short welcome message. Any error message is a bad sign. In that case, please check your installation again. Have a look at the troublesolver.
pycmbs init
pyCMBS makes use of a standard directory to look for observations. This directory is the Standard Evaluation Pool (SEP). The path to the SEP directory needs to be specified in the $SEP environment variable. In you .bashrc write:
export SEP=/path/to/directory
For users at MPI-M, the SEP variable needs to point to /pool/SEP. It is however possible to specify also for each observation an individual path where the observation is located. Then the SEP evnironment variable is not required. To check whether SEP is set, type:
echo $SEP
If your pyCMBS installation seems not to work properly, here are a few recommendations where to start searching.
Is python working properly?:
python -c "print 'Hello world'"
Does your PYTHONPATH environment variable contain the path to pyCMBS?:
echo $PYTHONPATH
This should give you the path where python is searching for modules. If it is empty you are most likely in trouble. Check if you have a valid python installation.
Is the script pycmb-benchmarking.py found in the system path?:
pycmbs-benchmarking.py
should give you a short Welcome Screen like described above. If this is not the case then either the overall pyCMBS installation is incomplete or Your systempath is not set appropriately. Type:
echo $PATH
and verify if the directory where pycmbs-benchmarking.py is located is listed in your PATH variable. If not, then you can try to change your PATH variable to make it working.
Further problems?
In case that these recommendations did not solve your problem, please feel free to ask a question or raise an issue on the pyCMBS development site.