This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
other:python:starting [2016/02/03 17:10] jypeter cdat without cdatm |
other:python:starting [2019/06/17 07:03] jypeter [CDAT] improved |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Working with Python ====== | ====== Working with Python ====== | ||
- | 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) | + | <note tip>This page will tell you how to select a python distribution and start (and exit!) the python interpreter |
- | 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) | + | You can then read the [[jyp_steps|JYP's recommended steps for learning python]] for really working with python |
+ | </note> | ||
- | <code> > which python | + | Note: the former and **outdated** version (before the massive usage of //conda//) is still [[other:python:starting_170810|available for reference]] |
- | /usr/bin/python | + | |
- | > rpm -qf /usr/bin/python | + | ===== Where to start ===== |
- | python-2.6.6-64.el6.x86_64 | + | |
- | > python | + | In order to start working with Python, you need to have a //Python distribution// installed on your local computer or on the remote Linux server(s) you work on. A //distribution// provides a //Python interpreter//, and Python extensions (aka Python //modules// or //packages//). 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 to determine where the python executable is located) |
- | 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. | + | |
- | >>> | + | |
- | </code> | + | |
- | ===== Some python distributions ===== | + | 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 //obelix// LSCE servers (if it's in ''/usr/bin'', it's the //default// python) and which version it is (example below: version //2.7.5// compiled in April 2019) |
- | 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!). | + | <code># Which is the current python (e.g. where is it located)? |
+ | > which python | ||
+ | /usr/bin/python | ||
- | 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! | + | # Where is it coming from ('rpm' works on a RedHat-like Linux machine)? |
- | + | > rpm -qf /usr/bin/python | |
- | We suggest that you **use Python 2 rather than Python 3**. Or you can check the [[https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:python:jyp_steps#python_27_vs_python_3|differences between both versions]] and try to write scripts that will work in both versions! 8-) | + | python-2.7.5-77.el7_6.x86_64 |
- | + | ||
- | ==== LSCE distribution ==== | + | |
- | + | ||
- | Contact: the LSCE system administrators | + | |
- | + | ||
- | <code> | + | |
- | > 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 | + | |
+ | # You also get some information when you start the interpreter | ||
> python | > python | ||
- | Python 2.7.5 (default, Sep 18 2013, 15:47:43) | + | Python 2.7.5 (default, Apr 9 2019, 14:30:50) |
- | [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 | + | [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2 |
Type "help", "copyright", "credits" or "license" for more information. | Type "help", "copyright", "credits" or "license" for more information. | ||
>>> | >>> | ||
</code> | </code> | ||
- | ==== TGCC distribution ==== | + | ===== Ultra quick-start on the LSCE servers ===== |
- | Contact: the TGCC hotline | + | ==== Initialization ==== |
- | <code> | + | - Start a terminal on an //obelix// server ([[https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:newppl:starting#which_linux_servers_should_you_use|more info]]) |
- | $ module avail | + | - Type ''python'' to access the //default Python 2// interpreter available on the servers... |
- | [...] | + | - ...or **follow the steps below to use the more complete //CDAT// distribution maintained by JYP**.\\ Remember that **you can exit the interpreter by typing CTRL-D** (or ''quit()'' or ''exit()'') |
- | cmake/2.8.9(default) hwloc/1.5 netcdf-utils/4.3.3.1_hdf5 python/2.7.8 tix/8.4.3 | + | - Determine if you are using a [[other:newppl:starting#which_shell_are_you_using|bash or tcsh shell]] (all the new LSCE accounts use the //bash// shell), then type the following command to //initialize conda// (//conda// helps you manage your python environment) |
- | cmake/3.2.2 hwloc/1.7.1(default) octave/3.6.3 python/3.3.2 tk/8.5(default) | + | * In a //bash// shell: ''source ~jypeter/.conda3_jyp.sh'' |
- | [...] | + | * In a //tcsh// shell: ''source ~jypeter/.conda3_jyp.csh'' |
+ | - Choose which //flavor// of Python you want by typing the activation command: | ||
+ | * Python 2.7.x: ''conda activate cdatm_py2'' | ||
+ | * Python 3.x: ''conda activate cdatm_py3'' | ||
+ | - Type ''python'' to start the interpreter | ||
+ | - Note: if you will have to use python regularly, you should add the ''source'' line above to your ''.cshrc'' /''.login'' file (//tcsh// users) or ''.bashrc''/''.profile'' (//bash// users) | ||
+ | * **Do not** add the ''conda activate cdatm_pyN'' line to the shell config files, because this will create potential side-effects!\\ Only type the activation command in the terminal(s) where you will need to use this specific version of Python | ||
- | $ module load python/2.7.8 | + | === Example === |
- | load module python/2.7.8 (Python) | + | |
- | $ which python | + | <code> >ssh obelix |
- | /usr/local/ccc_python/2.7.8_201409/bin/python | + | Last login: Mon Jun 3 08:49:53 2019 from somewhere |
- | + | bash-4.2$ which python | |
- | $ python | + | /usr/bin/python |
- | Python 2.7.8 (default, Aug 27 2014, 17:50:16) | + | bash-4.2$ source ~jypeter/.conda3_jyp.sh |
- | [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 | + | bash-4.2$ which python |
+ | /usr/bin/python | ||
+ | bash-4.2$ conda activate cdatm_py2 | ||
+ | (cdatm_py2) bash-4.2$ which python | ||
+ | /home/share/unix_files/cdat/miniconda3/envs/cdatm_py2/bin/python | ||
+ | (cdatm_py2) bash-4.2$ python | ||
+ | Python 2.7.15 | packaged by conda-forge | (default, Feb 28 2019, 04:00:11) | ||
+ | [GCC 7.3.0] on linux2 | ||
Type "help", "copyright", "credits" or "license" for more information. | Type "help", "copyright", "credits" or "license" for more information. | ||
- | >>> | + | >>> print('hello!') |
+ | hello! | ||
+ | >>> # Type CTRL-D to exit the python interpreter | ||
</code> | </code> | ||
- | ==== UV-CDAT ==== | + | ==== Useful keyboard shortcuts ==== |
- | Contact: Jean-Yves @ LSCE | + | ^ 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.cum**TABTAB**'' | | ||
+ | | **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'') | | ||
- | === What is UV-CDAT? === | + | ==== Executing a python script ==== |
- | [[http://uv-cdat.llnl.gov/|UV-CDAT]] (//Ultrascale Visualization - Climate Data Analysis Tools//) is a python distribution developed specifically for the climate scientists. | + | Note: Python is an [[https://en.wikipedia.org/wiki/Interpreted_language|interpreted language]] and we speak of //Python scripts// rather than //Python programs//. |
- | 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 [[other:uvcdat:extra|Extra packages installed in UV-CDAT]] page. | + | * ''python'': start the interpreter and start working interactively |
+ | * ''python script.py'': execute //script.py// and **exit** | ||
+ | * ''python -i script'': execute //script.py// and **stay in the interpreter** (''-i'' = //**I**nteractive//) | ||
- | UV-CDAT also provides some specific packages: **cdms2**, **cdutil**, **cdtime**, **genutil**, **vcs**, **cmor2**, ... | + | Type ''man python'' if you want to see what other command line options are available |
- | === UV-CDAT versions maintained by JYP === | + | ==== Stand-alone script ==== |
- | The following versions are maintained by JYP, on the servers where LSCE users have accounts | + | You don't have to explicitly call the python interpreter, if the interpreter is specified in a ''#!'' [[https://en.wikipedia.org/wiki/Shebang_%28Unix%29|shebang comment]] on **the first line of the script** with, and the script has its //execution bit// set (''chmod +x my_script.py''). |
- | ^ CDAT version ^ JYP\\ version ^ python\\ version ^ Availability? ^ Packages built by CDAT ^ Installation notes ^ | + | If you have a ''basic_script.py'' file with the following content in a directory... |
- | | **1.1.0** | 08 | 2.7.3 | LSCE, curie | n/a | [[other:uvcdat:installed#section110|1.1.0 notes]] | | + | <code> |
- | | **1.5.1** | 10 | 2.7.4 | LSCE, ciclad | {{:other:python:cdat-1.5.1_jyp-10_build_info.txt}} | [[other:uvcdat:installed#section151|1.5.1 notes]] | | + | #!/usr/bin/env python |
- | | **2.1.0** | 13 | 2.7.8 | LSCE, ciclad | {{:other:python:cdat-2.1.0_jyp-13_build_info.txt}} | [[other:uvcdat:installed#section210|2.1.0 notes]] | | + | |
- | | **2.4.0** | 14 | | | //Not installed yet// | | | + | |
- | Notes: | + | import sys |
- | * The ''cdat-VVV_jyp-NNN_build_info.txt'' files have been generated with\\ ''cd /my_build_directory_path; cat build_info.txt | sort > cdat-VVV_JYP-NNN_build_info.txt'' | + | |
- | === Initializing UV-CDAT === | + | script_name = sys.argv[0] |
- | 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! | + | print('Hello world, I am the ' + script_name + ' script') |
- | 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). | + | # The end</code> |
- | 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! | + | ...and if you are in the same directory and have initialized the Python distribution you want, you can then run the script the following way: |
- | <code>$ python -c 'import cdms2, vcs' | + | <code> > chmod +x basic_script.py |
- | Traceback (most recent call last): | + | |
- | File "<string>", line 1, in <module> | + | |
- | ImportError: No module named cdms2 | + | |
- | $ which python | + | > ls -l basic_script.py |
- | /usr/bin/python</code> | + | -rwxr-xr-x [...] basic_script.py |
- | == Using the cdatm alias for IPSL tcsh users == | + | > ./basic_script.py |
+ | Hello world, I am the ./basic_script.py script | ||
+ | </code> | ||
- | 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: | + | ==== What next? ==== |
- | * type ''cdatm'' to initialize the default version of UV-CDAT | + | |
- | * type ''cdatm %%--%%config //CONFIG_NAME//'' to initialize a specific version | + | |
- | <code> > which python | + | - Read the rest of this page to get a better understanding of what you have learned in this section, and use Python more efficiently |
- | /usr/bin/python | + | - Learn Python by reading what you need on the [[other:python:jyp_steps|JYP's recommended steps for learning python]] page |
- | > cdatm | + | ===== Python distributions available for LSCE users ===== |
- | ** CDAT 'uv-1.5.1' initialized! | + | |
- | ** If you have problems with this installation, | + | |
- | ** it is maintained by: Jean-Yves Peterschmitt - LSCE | + | |
- | > which python | + | This section will help you choose a distribution in the big Python ecosystem (many distributions, python version 2.7.* or 3.*, ...) on some of the servers used by LSCE users. 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!) and try to identify who is maintaining it, if you need help or additional packages. |
- | /home/share/unix_files/cdat/versions/cdat_install_uv-1.5.1_x86_64_gcc4_10/bin/python | + | |
- | </code> | + | |
- | You need to add the following line to the ''.cshrc'' file in your home directory, in order to define the ''cdatm'' alias: | + | Only install a distribution yourself if you need it on your local computer (desktop or laptop), or if you need to install some modules that can't be installed by the contacts listed below. A python distribution will require several Gb of disk space, so do not install it in your backed up //home// directory! |
- | | **LSCE** | alias cdatm 'source ~jypeter/CDAT/Install/cdat_multi/cdat_multi.login ~jypeter/CDAT/Install/cdat_multi' | | + | You can use either //Python 2// or //Python 3//. Most packages are now available in both versions, but you should make sure that the most important package/s you need is/are available in the selected Python version. You can check the [[https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:python:jyp_steps#python_27_vs_python_3|differences between both versions]] and try to write scripts that will work in both versions! |
- | | **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' | | + | |
- | == Initializing UV-CDAT when the cdatm alias is not available, or in a batch script == | + | ==== LSCE distribution ==== |
- | You first need to know which shell you are using | + | * Contact: the LSCE system administrators ([[help-lsce@lsce.ipsl.fr]]) |
+ | * Where: //obelix// interactive servers and //obelix// cluster at LSCE | ||
+ | * Initialization type: [[other:newppl:starting#using_module_to_access_optional_programs|module based]] + //conda// | ||
+ | * What's installed: type ''conda list'' after initializing the LSCE distribution | ||
- | <code>$ echo $SHELL | + | <code> |
- | /bin/bash</code> | + | > module avail |
+ | [...] | ||
+ | 4ARTIC/3.6 grib_api/1.14 netcdf/3 python/2.7.5 | ||
+ | batch_env grib_api/1.14.0 netcdf/4 python/3.6 | ||
+ | [...] | ||
+ | glost/0.3.1 ncview/2.1.7 python/2.7 | ||
+ | [...] | ||
- | You then need to know where the ''python'' program provided by UV-CDAT is installed, something like ''/path/to/UV-CDAT/bin/python'' | + | > module load python/2.7 |
- | Finally, all you need to do in order to initialize UV-CDAT is to source the ''setup_runtime'' file appropriate for your shell: | + | > which python |
- | * tcsh: ''source /path/to/UV-CDAT/bin/setup_runtime.csh'' | + | /usr/local/install/python-2.7/bin/python |
- | * bash, sh: ''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 | + | > python |
+ | Python 2.7.15 |Anaconda, Inc.| (default, Oct 10 2018, 21:32:13) | ||
+ | [GCC 7.3.0] on linux2 | ||
+ | Type "help", "copyright", "credits" or "license" for more information. | ||
+ | >>> | ||
+ | </code> | ||
- | ^ Server ^ CDAT\\ version ^ JYP\\ version ^ Path ^ | + | ==== CDAT ==== |
- | | 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) | + | [[https://uvcdat.llnl.gov/|CDAT]] (//Community Data Analysis Tools//) is a powerful and complete front-end to a rich set of visual-data exploration and analysis capabilities well suited for **climate** data analysis problems, and is recommended by JYP. |
- | <code>bash-4.1$ source /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin/setup_runtime.sh | + | CDAT is **available for Mac, Linux and Windows 10 (Windows 10 + [[other:win10wsl|Windows Subsystem for Linux, and Ubuntu]])**. |
- | bash-4.1$ which python | + | * Contact: Jean-Yves Peterschmitt (//JYP//) @ LSCE |
- | /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin/python | + | * Where: //obelix// interactive servers and cluster at LSCE, //ciclad// interactive servers and cluster at IPSL, irene @ TGCC |
+ | * Initialization type: conda based or [[other:newppl:starting#using_module_to_access_optional_programs|module based]] | ||
+ | * What's installed: type ''conda list'' after initializing a specific CDAT distribution | ||
- | bash-4.1$ python -c 'import cdms2, vcs' | + | === CDAT versions maintained by JYP === |
- | bash-4.1$</code> | + | |
- | 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: | + | The following versions are maintained by JYP, on the Linux servers where LSCE users have accounts |
- | * tcsh: add the following alias definitions to ''~/.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''' | + | |
- | * bash: add the following alias definition to ''~/.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 | + | ^ CDAT version ^ JYP\\ version ^ python\\ version ^ Availability? ^ Available packages ^ Installation notes ^ |
- | <code>source /home/share/unix_files/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_13/bin/setup_runtime.sh | + | | **8.1** | 18 | 2.7.15\\ 3.6.7 | LSCE, ciclad | {{ :other:uvcdat:cdat_conda:cdat-8.1_py2_list_190307.txt |Default CDAT packages}}\\ [[other:uvcdat:cdat_conda:cdat_8_1#extra_packages_list|Extra packages]] | [[other:uvcdat:cdat_conda:cdat_8_1|8.1 notes]] | |
- | # Check which python we will be using | + | == Initialization == |
- | mypython=`which python` | + | |
- | echo | + | |
- | echo -e "This script will use the following python: $mypython\n\n"</code> | + | |
- | ==== Canopy ==== | + | Read the [[https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:python:starting#ultra_quick-start_on_the_lsce_servers|Ultra quick-start on the LSCE servers]] above |
- | [[https://www.enthought.com/products/canopy/|Enthought Canopy]] is //a Scientific and Analytic Python Deployment with Integrated Analysis Environment// provided by [[https://www.enthought.com/|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 | + | Note: on the ciclad cluster, use ''source ~jypmce/.conda3_jyp.sh'' to initialize conda |
+ | === CDAT at TGCC === | ||
- | ==== Anaconda ==== | + | Note: TGCC also supports its own [[#tgcc_distribution|TGCC distribution]], that may be more up-to-date, if you don't need specific CDAT modules |
- | [[https://www.continuum.io/why-anaconda|Anaconda]] is a distribution similar to [[#canopy]] provided by [[https://www.continuum.io/|Continuum Analytics]]. It is available for Windows, Mac and Linux | + | CDAT **8.0** is installed at TGCC and can be initialized with: |
+ | * Python 2: ''module load cdat'' | ||
+ | * Python 3: ''module load flavor/cdat/python3 cdat'' | ||
+ | === A common CDAT-related error === | ||
- | ===== Launching Python ===== | + | Note: if you get an error when importing //cdms2// or //vcs// it means that either you have forgotten to initialize CDAT, or that something went wrong during the initialization. In both cases, you are either still using the default python installed on your system, or another (non-CDAT) python distribution! |
- | Once you have initialized the [[#some_python_distributions|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). | + | <code>$ python -c 'import cdms2, vcs' |
+ | Traceback (most recent call last): | ||
+ | File "<string>", line 1, in <module> | ||
+ | ImportError: No module named cdms2 | ||
- | Remember that you can check which python you are using by typing ''which python''! | + | # Am I using the correct python distribution? |
+ | $ which python | ||
+ | /usr/bin/python</code> | ||
- | ==== Useful keyboard shortcuts ==== | + | ==== TGCC distribution ==== |
- | ^ Key ^ Effect ^ | + | * Contact: the TGCC hotline ([[hotline.tgcc@cea.fr]]) |
- | | **CTRL-D** | Exit the interpreter | | + | * Where: CEA TGCC |
- | | **↑ and ↓** | Go to previous/next line(s) | | + | * Initialization type: [[other:newppl:starting#using_module_to_access_optional_programs|module based]] |
- | | **CTRL-A** | Go to the beginning of the line | | + | * What's installed: it depends... |
- | | **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.cum**TABTAB**'' | | + | |
- | | **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'') | | + | |
- | ==== Stand-alone script ==== | + | <code># Get the default version of the Python based modules |
+ | $ module avail -t -d | egrep '(python|cdat)' | ||
+ | flavor/cdat/standard(default) | ||
+ | flavor/nest/python2(default) | ||
+ | flavor/pytorch/python2(default) | ||
+ | flavor/tensorflow/gpu_python2(default) | ||
+ | intelpython2/2019.0(default) | ||
+ | intelpython3/2019.0(default) | ||
+ | python/2.7.14(default) | ||
+ | python3/3.6.4(default) | ||
+ | cdat/8.0(default) | ||
- | 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 ''#!'' [[https://en.wikipedia.org/wiki/Shebang_%28Unix%29|shebang comment]] on the first line of the script with, and the script has it's execution bit set. | + | $ module load python |
+ | [...] | ||
+ | load module python/2.7.14 (Python) | ||
- | <code> | + | $ which python |
- | jypeter@asterix1 - ...jypeter - 54 >cat basic_script.py | + | /ccc/products/python-2.7.14/intel--17.0.4.196__openmpi--2.0.2/default/bin/python |
- | #!/usr/bin/env python | + | |
- | import sys | + | $ python |
+ | Python 2.7.14 (default, Jan 11 2018, 16:43:59) | ||
+ | [GCC 4.8.5] on linux2 | ||
+ | Type "help", "copyright", "credits" or "license" for more information. | ||
+ | >>> | ||
+ | </code> | ||
- | script_name = sys.argv[0] | + | ==== Canopy ==== |
- | print('Hello world, I am the ' + script_name + ' script') | + | [[https://www.enthought.com/products/canopy/|Enthought Canopy]] is //a Scientific and Analytic Python Deployment with Integrated Analysis Environment// provided by [[https://www.enthought.com/|Enthought]]. It used to be called EPD (//Enthought Python Distribution//) |
- | # The end | + | Canopy 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 |
- | jypeter@asterix1 - ...jypeter - 55 >chmod +x basic_script.py | ||
- | ypeter@asterix1 - ...jypeter - 56 ># Type here what is required to initialize the distribution you want | + | ==== Anaconda ==== |
- | jypeter@asterix1 - ...jypeter - 57 >./basic_script.py | + | [[https://www.continuum.io/why-anaconda|Anaconda]] is a distribution similar to [[#canopy]] provided by [[https://www.continuum.io/|Continuum Analytics]]. |
- | Hello world, I am the ./basic_script.py script | + | |
- | </code> | + | |
- | ==== Standard interpreter ==== | + | Anaconda is **available for Windows, Mac and Linux** |
- | * ''python'': start the interpreter | + | Note: Anaconda provides and uses ''conda'' for its installation. Since CDAT is now also installed and maintained with ''conda'', you can read the [[other:uvcdat:conda_notes|Installing and maintaining UV-CDAT with conda]] page for more information, even if you are not going to use CDAT |
- | * ''python script.py'': execute //script.py// and **exit** | + | |
- | * ''python -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 | + | ===== ipython ===== |
==== ipython interpreter ==== | ==== ipython interpreter ==== | ||
- | 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 | + | The //ipython// interpreter provides more options and commands than the standard python interpreter, but takes more time to start. 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'' | Starting ipython: ''ipython'' | ||
Line 253: | Line 264: | ||
==== ipython notebook ==== | ==== ipython notebook ==== | ||
+ | |||
+ | <note warning>FIXME Add a link to the new notebook page</note> | ||
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 [[other:python:jyp_steps#part_1|introduction to Python, part 1]]). | 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 [[other:python:jyp_steps#part_1|introduction to Python, part 1]]). |