This is an old revision of the document!
In order to begin using Python, you need to have a Python distribution installed. A distribution provides a Python interpreter, and Python extensions (aka Python modules). You may have several distributions installed on your computer and you need to know how to initialize them, and which one you are using at a given time (type which python
on Linux)
If you are using a Linux computer or a Mac, you should already have a default python installed. The following example shows where the python interpreter is installed on the asterix1 server (if it's in /usr/bin
, it's the default python) and which version it is (version 2.6.6 compiled in May 2015)
> which python /usr/bin/python > rpm -qf /usr/bin/python python-2.6.6-64.el6.x86_64 > python Python 2.6.6 (r266:84292, May 22 2015, 08:34:51) [GCC 4.4.7 20120313 (Red Hat 4.4.7-15)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
This section will help you choose a distribution in the big Python ecosystem (many distributions, python version 2.7.* or 3.*, …). You should use a distribution that is already available near your data (e.g. do the computation on a server near your data, do not move/duplicate the data!).
Only install a distribution yourself if you need it on your local computer, or if you need to install some modules that can't be installed by the contacts listed below. A python distribution can be quite big, so do not install it in a backed up home directory!
We suggest that you use Python 2 rather than Python 3. Or you can check the differences between both versions and try to write scripts that will work in both versions!
Contact: the LSCE system administrators
> module avail [...] castem/12 ferret/6.9.5 hdf5/1.8.9 netcdf/4p python/2.7.5 sun-java/7.0.45 [...] > module load python/2.7.5 > which python /usr/local/install/python-2.7.5/bin/python > python Python 2.7.5 (default, Sep 18 2013, 15:47:43) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Contact: the TGCC hotline
$ module avail [...] cmake/2.8.9(default) hwloc/1.5 netcdf-utils/4.3.3.1_hdf5 python/2.7.8 tix/8.4.3 cmake/3.2.2 hwloc/1.7.1(default) octave/3.6.3 python/3.3.2 tk/8.5(default) [...] $ module load python/2.7.8 load module python/2.7.8 (Python) $ which python /usr/local/ccc_python/2.7.8_201409/bin/python $ python Python 2.7.8 (default, Aug 27 2014, 17:50:16) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Contact: Jean-Yves @ LSCE
UV-CDAT (Ultrascale Visualization - Climate Data Analysis Tools) is a python distribution developed specifically for the climate scientists.
You can find out which standard packages are installed by clicking on the cdat-VVV_JYP-NNN_build_info.txt
files below and by visiting the Extra packages installed in UV-CDAT page.
UV-CDAT also provides some specific packages: cdms2, cdutil, cdtime, genutil, vcs, cmor2, …
The following versions are maintained by JYP, on the servers where LSCE users have accounts
CDAT version | JYP version | python version | Availability? | Packages built by CDAT | Installation notes |
---|---|---|---|---|---|
1.1.0 | 08 | 2.7.3 | LSCE, curie | n/a | 1.1.0 notes |
1.5.1 | 10 | 2.7.4 | LSCE, ciclad | cdat-1.5.1_jyp-10_build_info.txt | 1.5.1 notes |
2.1.0 | 13 | 2.7.8 | LSCE, ciclad | cdat-2.1.0_jyp-13_build_info.txt | 2.1.0 notes |
2.4.0 | 14 | Not installed yet |
Notes:
cdat-VVV_jyp-NNN_build_info.txt
files have been generated withcd /my_build_directory_path; cat build_info.txt | sort > cdat-VVV_JYP-NNN_build_info.txt
The way you initialize UV-CDAT depends on which server you want to use it, which shell you are using (and the shell in a batch script may be different from your interactive shell). It also depends on which version of UV-CDAT you want to use!
You should use the most recent version of UV-CDAT available on a given server, unless you have a good reason to use an older version (e.g. if you need to use the old-style vcs of version 1.5.1).
Note: if you get an error when importing cdms2 or vcs it means that either you have forgotten to initialize UV-CDAT, or that something went wrong during the initialization. In both cases, you are probably still using the default python installed on your system!
$ python -c 'import cdms2, vcs' Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named cdms2 $ which python /usr/bin/python
If you use tcsh as a login shell, you can define a cdatm
alias on all the IPSL servers on which UV-CDAT is installed (see details below), and move easily from one version of UV-CDAT to another:
cdatm
to initialize the default version of UV-CDATcdatm --config CONFIG_NAME
to initialize a specific version> which python /usr/bin/python > cdatm ** CDAT 'uv-1.5.1' initialized! ** If you have problems with this installation, ** it is maintained by: Jean-Yves Peterschmitt - LSCE > which python /home/share/unix_files/cdat/versions/cdat_install_uv-1.5.1_x86_64_gcc4_10/bin/python
You need to add the following line to the .cshrc
file in your home directory, in order to define the cdatm
alias:
LSCE | alias cdatm 'source ~jypeter/CDAT/Install/cdat_multi/cdat_multi.login ~jypeter/CDAT/Install/cdat_multi' |
ciclad | alias cdatm 'source ~jypmce/CDAT/Install/cdat_multi/cdat_multi.login ~jypmce/CDAT/Install/cdat_multi' |
curie | alias cdatm 'source ~p25jype/CDAT/Install/cdat_multi/cdat_multi.login ~p25jype/CDAT/Install/cdat_multi' |
You first need to know which shell you are using
$ echo $SHELL /bin/bash
You then need to know where the python
program provided by UV-CDAT is installed, something like /path/to/UV-CDAT/bin/python
Finally, all you need to do in order to initialize UV-CDAT is to source the setup_runtime
file appropriate for your shell:
source /path/to/UV-CDAT/bin/setup_runtime.csh
source /path/to/UV-CDAT/bin/setup_runtime.sh
The table below lists, for each server and version, the path where you can find the setup_runtime files
Server | CDAT version | JYP version | Path |
---|---|---|---|
LSCE | 1.1.0 | LSCE_08 | /home/share/unix_files/cdat/versions/cdat_install_uv-1.1.0_x86_64_gcc4_08/bin |
LSCE | 1.5.1 | LSCE_10 | /home/share/unix_files/cdat/versions/cdat_install_uv-1.5.1_x86_64_gcc4_10/bin |
LSCE | 2.1.0 | LSCE_13 | /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin |
ciclad | 1.5.1 | ciclad_10-ng | /data/jypmce/cdat/versions/cdat_install_uv-1.5.1_x86_64_gcc4_10-ng/bin |
ciclad | 2.1.0 | ciclad_13 | /data/jypmce/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin |
curie | 1.1.0 | curie_08 | /ccc/work/cont003/dsm/p25jype/cdat/versions/cdat_install_uv-1.1.0_x86_64_gcc4_curie_08/bin |
Example: if you want to use UV-CDAT 2.1.0 at LSCE in a bash shell, you need to do the following (you only need the source line. The other lines are optional, just for checking that the initialization was OK)
bash-4.1$ source /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin/setup_runtime.sh bash-4.1$ which python /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin/python bash-4.1$ python -c 'import cdms2, vcs' bash-4.1$
You probably don't want to have to determine what you should type each time you want to use UV-CDAT in a window, so you should define a simple shortcut alias that you can type each time you need to initialize UV-CDAT. If, for example, you want to use UV-CDAT 2.1.0 at LSCE:
~/.cshrc
alias cdat13 'source /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin/setup_runtime.csh
'alias wp 'which python
'~/.bashrc
, ~/.profile
or ~/.bash_profile
(whichever works for you, or read man bash
…)alias cdat13='source /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin/setup_runtime.sh
'alias wp='which python
'If you are going to use a UV-CDAT python script on a cluster or supercomputer, using some kind of batch system using a bash or ksh script, use the following lines before you run the python script
source /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin/setup_runtime.sh # Check which python we will be using mypython=`which python` echo echo -e "This script will use the following python: $mypython\n\n"
Enthought Canopy is a Scientific and Analytic Python Deployment with Integrated Analysis Environment provided by Enthought. It is available for Windows, Mac and Linux. You can download the free Canopy Express that will already provide many extensions. If you are entitled to use Canopy Academic, login from inside Canopy Express and download the extra modules you need
Anaconda is a distribution similar to canopy provided by Continuum Analytics. It is available for Windows, Mac and Linux
Once you have initialized the python distribution you want to use, follow the instructions below to start the interpreter from a shell (on a Windows computer, you will have to start python from the Start menu).
Remember that you can check which python you are using by typing which python
!
Key | Effect |
---|---|
CTRL-D | Exit the interpreter |
↑ and ↓ | Go to previous/next line(s) |
CTRL-A | Go to the beginning of the line |
CTRL-E | Go to the end of the line |
CTRL-K | Erase from the cursor to the end of the line |
CTRL-U | Erase from the beginning of the line to the cursor |
TAB x 2 | Do some TAB-completion (context dependent) e.g. a = np.cumTABTAB |
CTRL-C | Interrupt a running script |
CTRL-Z | Suspend the interpreter and go back to the shell Do not forget to go back to the interpreter with fg or to kill it (with jobs and kill %NN ) |
A python script is just like any other shell script. You don't have to explicitly call the python interpreter, if the interpreter is specified in a #!
shebang comment on the first line of the script with, and the script has it's execution bit set.
jypeter@asterix1 - ...jypeter - 54 >cat basic_script.py #!/usr/bin/env python import sys script_name = sys.argv[0] print('Hello world, I am the ' + script_name + ' script') # The end jypeter@asterix1 - ...jypeter - 55 >chmod +x basic_script.py ypeter@asterix1 - ...jypeter - 56 ># Type here what is required to initialize the distribution you want jypeter@asterix1 - ...jypeter - 57 >./basic_script.py Hello world, I am the ./basic_script.py script
python
: start the interpreterpython script.py
: execute script.py and exitpython -i script
: execute script.py and stay in the interpreter
Type man python
if you want to see what other command line options are available
The ipython interpreter provides more options and commands than the standard python interpreter, but takes more time to load. If you are going to develop by starting and exiting the interpreter many times, it's faster to use the standard interpreter
Starting ipython: ipython
The ipython notebook is a way to interact with python (and other supported interpreted languages) inside a web browser. You can mix cells with python commands, cells with the output of the python commands (possibly graphics generated by the commands), and text (using some wiki-like rich text format). This interactive web page, aka notebook, can be saved in a my_notebook.ipynb
file and re-used later (e.g. the notebook provided in the introduction to Python, part 1).
Starting the notebook server: ipython notebook
Please make sure that you shutdown cleanly each notebook and the server when you are finished, in order not to clutter the local computer or remote server with lots of python processes (especially a server shared by many users!).
You may want to use the 'top' command in order to monitor what is happening
[ PMIP3 Wiki Home ] - [ Help! ] - [ Wiki syntax ]