Python-Teaching: Difference between revisions

From Research Computing Center Wiki
Jump to navigation Jump to search
No edit summary
(8 intermediate revisions by 2 users not shown)
Line 9: Line 9:


=== Version ===
=== Version ===
2.7.14
2.7.18, 3.7.4, 3.8.6, 3.9.6, 3.10.4
   
   
=== Author / Distributor ===
=== Author / Distributor ===
Line 21: Line 21:
=== Running Program ===
=== Running Program ===


The last version of this application is at /usr/local/apps/eb/Python/2.7.14-foss-2016b
Please also see [[Python-Sapelo2]] as that documentation applies to the teaching cluster as well.
 
To see all versions of Python installed on the cluster, use:
<pre class="gscript">
ml spider Python
</pre>
 
For example:
 
'''Version 2.7.18'''
 
Installed in /apps/eb/Python/2.7.18-GCCcore-11.3.0
 
To use this version, please load the module with
<pre class="gscript">
ml Python/2.7.18-GCCcore-11.3.0
</pre>
 
'''Version 3.10.4'''
 
Installed in /apps/eb/Python/3.10.4-GCCcore-11.3.0


To use this version, please load the module with
To use this version, please load the module with
<pre class="gscript">
<pre class="gscript">
ml Python/2.7.14-foss-2016b
ml Python/3.10.4-GCCcore-11.3.0
</pre>  
</pre>  


Here is an example of a shell script, sub.sh, to run on the batch queue:  
Here is an example of a shell script, sub.sh, to run on the batch queue:  
Line 40: Line 61:
<nowiki>#</nowiki>SBATCH --time=<u>08:00:00</u><br>   
<nowiki>#</nowiki>SBATCH --time=<u>08:00:00</u><br>   
<nowiki>#</nowiki>SBATCH --output=Python.%j.out<br>
<nowiki>#</nowiki>SBATCH --output=Python.%j.out<br>
<nowiki>#</nowiki>SBATCH --error=Python.%j.err<br>
   
   
cd $SLURM_SUBMIT_DIR<br>
cd $SLURM_SUBMIT_DIR<br>
ml Python/2.7.14-foss-2016b<br>     
ml Python/3.10.4-GCCcore-1.3.0<br>     
python <u>[options]</u><br>   
python <u>[options]</u><br>   
</div>
</div>
Line 58: Line 80:
   
   
<pre  class="gcommand">
<pre  class="gcommand">
ml Python/2.7.14-foss-2016b
ml Python/3.10.4-GCCcore-11.3.0
python python -h
python -h
 
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
Options and arguments (and corresponding environment variables):
-b    : issue warnings about comparing bytearray with unicode
-b    : issue warnings about str(bytes_instance), str(bytearray_instance)
        (-bb: issue errors)
        and comparing bytes/bytearray with str. (-bb: issue errors)
-B    : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x
-B    : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
-c cmd : program passed in as string (terminates option list)
-c cmd : program passed in as string (terminates option list)
-d    : debug output from parser; also PYTHONDEBUG=x
-d    : turn on parser debugging output (for experts only, only works on
        debug builds); also PYTHONDEBUG=x
-E    : ignore PYTHON* environment variables (such as PYTHONPATH)
-E    : ignore PYTHON* environment variables (such as PYTHONPATH)
-h    : print this help message and exit (also --help)
-h    : print this help message and exit (also --help)
-i    : inspect interactively after running script; forces a prompt even
-i    : inspect interactively after running script; forces a prompt even
         if stdin does not appear to be a terminal; also PYTHONINSPECT=x
         if stdin does not appear to be a terminal; also PYTHONINSPECT=x
-I    : isolate Python from the user's environment (implies -E and -s)
-m mod : run library module as a script (terminates option list)
-m mod : run library module as a script (terminates option list)
-O    : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x
-O    : remove assert and __debug__-dependent statements; add .opt-1 before
-OO    : remove doc-strings in addition to the -O optimizations
        .pyc extension; also PYTHONOPTIMIZE=x
-R    : use a pseudo-random salt to make hash() values of various types be
-OO    : do -O changes and also discard docstrings; add .opt-2 before
         unpredictable between separate invocations of the interpreter, as
         .pyc extension
        a defense against denial-of-service attacks
-q    : don't print version and copyright messages on interactive startup
-Q arg : division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
-s    : don't add user site directory to sys.path; also PYTHONNOUSERSITE
-s    : don't add user site directory to sys.path; also PYTHONNOUSERSITE
-S    : don't imply 'import site' on initialization
-S    : don't imply 'import site' on initialization
-t    : issue warnings about inconsistent tab usage (-tt: issue errors)
-u    : force the stdout and stderr streams to be unbuffered;
-u    : unbuffered binary stdout and stderr; also PYTHONUNBUFFERED=x
        this option has no effect on stdin; also PYTHONUNBUFFERED=x
        see man page for details on internal buffering relating to '-u'
-v    : verbose (trace import statements); also PYTHONVERBOSE=x
-v    : verbose (trace import statements); also PYTHONVERBOSE=x
         can be supplied multiple times to increase verbosity
         can be supplied multiple times to increase verbosity
-V    : print the Python version number and exit (also --version)
-V    : print the Python version number and exit (also --version)
        when given twice, print more information about the build
-W arg : warning control; arg is action:message:category:module:lineno
-W arg : warning control; arg is action:message:category:module:lineno
         also PYTHONWARNINGS=arg
         also PYTHONWARNINGS=arg
-x    : skip first line of source, allowing use of non-Unix forms of #!cmd
-x    : skip first line of source, allowing use of non-Unix forms of #!cmd
-3    : warn about Python 3.x incompatibilities that 2to3 cannot trivially fix
-X opt : set implementation-specific option. The following options are available:
 
        -X faulthandler: enable faulthandler
        -X showrefcount: output the total reference count and number of used
            memory blocks when the program finishes or after each statement in the
            interactive interpreter. This only works on debug builds
        -X tracemalloc: start tracing Python memory allocations using the
            tracemalloc module. By default, only the most recent frame is stored in a
            traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a
            traceback limit of NFRAME frames
        -X importtime: show how long each import takes. It shows module name,
            cumulative time (including nested imports) and self time (excluding
            nested imports). Note that its output may be broken in multi-threaded
            application. Typical usage is python3 -X importtime -c 'import asyncio'
        -X dev: enable CPython's "development mode", introducing additional runtime
            checks which are too expensive to be enabled by default. Effect of the
            developer mode:
                * Add default warning filter, as -W default
                * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function
                * Enable the faulthandler module to dump the Python traceback on a crash
                * Enable asyncio debug mode
                * Set the dev_mode attribute of sys.flags to True
                * io.IOBase destructor logs close() exceptions
        -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default
            locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would
            otherwise activate automatically)
        -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the
            given directory instead of to the code tree
        -X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None'
 
--check-hash-based-pycs always|default|never:
    control how Python invalidates hash-based .pyc files
file  : program read from script file
file  : program read from script file
-      : program read from stdin (default; interactive mode if a tty)
-      : program read from stdin (default; interactive mode if a tty)
Line 99: Line 154:
               default module search path.  The result is sys.path.
               default module search path.  The result is sys.path.
PYTHONHOME  : alternate <prefix> directory (or <prefix>:<exec_prefix>).
PYTHONHOME  : alternate <prefix> directory (or <prefix>:<exec_prefix>).
               The default module search path uses <prefix>/pythonX.X.
               The default module search path uses <prefix>/lib/pythonX.X.
PYTHONPLATLIBDIR : override sys.platlibdir.
PYTHONCASEOK : ignore case in 'import' statements (Windows).
PYTHONCASEOK : ignore case in 'import' statements (Windows).
PYTHONUTF8: if set to 1, enable the UTF-8 mode.
PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.
PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.
PYTHONHASHSEED: if this variable is set to 'random', the effect is the same
PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.
  as specifying the -R option: a random value is used to seed the hashes of
PYTHONHASHSEED: if this variable is set to 'random', a random value is used
  str, bytes and datetime objects.  It can also be set to an integer
  to seed the hashes of str and bytes objects.  It can also be set to an
   in the range [0,4294967295] to get hash values with a predictable seed.
   integer in the range [0,4294967295] to get hash values with a
  predictable seed.
PYTHONMALLOC: set the Python memory allocators and/or install debug hooks
  on Python memory allocators. Use PYTHONMALLOC=debug to install debug
  hooks.
PYTHONCOERCECLOCALE: if this variable is set to 0, it disables the locale
  coercion behavior. Use PYTHONCOERCECLOCALE=warn to request display of
  locale coercion and locale compatibility warnings on stderr.
PYTHONBREAKPOINT: if this variable is set to 0, it disables the default
  debugger. It can be set to the callable of your debugger of choice.
PYTHONDEVMODE: enable the development mode.
PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files.
PYTHONWARNDEFAULTENCODING: enable opt-in EncodingWarning for 'encoding=None'.


</pre>
</pre>

Revision as of 13:32, 5 September 2023

Category

Programming

Program On

Teaching

Version

2.7.18, 3.7.4, 3.8.6, 3.9.6, 3.10.4

Author / Distributor

Python

Description

"Python is a programming language that lets you work more quickly and integrate your systems more effectively." More details are at Python

Running Program

Please also see Python-Sapelo2 as that documentation applies to the teaching cluster as well.

To see all versions of Python installed on the cluster, use:

ml spider Python

For example:

Version 2.7.18

Installed in /apps/eb/Python/2.7.18-GCCcore-11.3.0

To use this version, please load the module with

ml Python/2.7.18-GCCcore-11.3.0

Version 3.10.4

Installed in /apps/eb/Python/3.10.4-GCCcore-11.3.0

To use this version, please load the module with

ml Python/3.10.4-GCCcore-11.3.0


Here is an example of a shell script, sub.sh, to run on the batch queue:

#!/bin/bash
#SBATCH --job-name=j_Python
#SBATCH --partition=batch
#SBATCH --mail-type=ALL
#SBATCH --mail-user=username@uga.edu
#SBATCH --ntasks=1
#SBATCH --mem=10gb
#SBATCH --time=08:00:00
#SBATCH --output=Python.%j.out
#SBATCH --error=Python.%j.err

cd $SLURM_SUBMIT_DIR
ml Python/3.10.4-GCCcore-1.3.0
python [options]

In the real submission script, at least all the above underlined values need to be reviewed or to be replaced by the proper values.

Please refer to Running_Jobs_on_the_teaching_cluster, Run X window Jobs and Run interactive Jobs for more details of running jobs at Teaching cluster.


Here is an example of job submission command:

sbatch ./sub.sh 

Documentation

ml Python/3.10.4-GCCcore-11.3.0
python -h

usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-b     : issue warnings about str(bytes_instance), str(bytearray_instance)
         and comparing bytes/bytearray with str. (-bb: issue errors)
-B     : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x
-c cmd : program passed in as string (terminates option list)
-d     : turn on parser debugging output (for experts only, only works on
         debug builds); also PYTHONDEBUG=x
-E     : ignore PYTHON* environment variables (such as PYTHONPATH)
-h     : print this help message and exit (also --help)
-i     : inspect interactively after running script; forces a prompt even
         if stdin does not appear to be a terminal; also PYTHONINSPECT=x
-I     : isolate Python from the user's environment (implies -E and -s)
-m mod : run library module as a script (terminates option list)
-O     : remove assert and __debug__-dependent statements; add .opt-1 before
         .pyc extension; also PYTHONOPTIMIZE=x
-OO    : do -O changes and also discard docstrings; add .opt-2 before
         .pyc extension
-q     : don't print version and copyright messages on interactive startup
-s     : don't add user site directory to sys.path; also PYTHONNOUSERSITE
-S     : don't imply 'import site' on initialization
-u     : force the stdout and stderr streams to be unbuffered;
         this option has no effect on stdin; also PYTHONUNBUFFERED=x
-v     : verbose (trace import statements); also PYTHONVERBOSE=x
         can be supplied multiple times to increase verbosity
-V     : print the Python version number and exit (also --version)
         when given twice, print more information about the build
-W arg : warning control; arg is action:message:category:module:lineno
         also PYTHONWARNINGS=arg
-x     : skip first line of source, allowing use of non-Unix forms of #!cmd
-X opt : set implementation-specific option. The following options are available:

         -X faulthandler: enable faulthandler
         -X showrefcount: output the total reference count and number of used
             memory blocks when the program finishes or after each statement in the
             interactive interpreter. This only works on debug builds
         -X tracemalloc: start tracing Python memory allocations using the
             tracemalloc module. By default, only the most recent frame is stored in a
             traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a
             traceback limit of NFRAME frames
         -X importtime: show how long each import takes. It shows module name,
             cumulative time (including nested imports) and self time (excluding
             nested imports). Note that its output may be broken in multi-threaded
             application. Typical usage is python3 -X importtime -c 'import asyncio'
         -X dev: enable CPython's "development mode", introducing additional runtime
             checks which are too expensive to be enabled by default. Effect of the
             developer mode:
                * Add default warning filter, as -W default
                * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function
                * Enable the faulthandler module to dump the Python traceback on a crash
                * Enable asyncio debug mode
                * Set the dev_mode attribute of sys.flags to True
                * io.IOBase destructor logs close() exceptions
         -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default
             locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would
             otherwise activate automatically)
         -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the
             given directory instead of to the code tree
         -X warn_default_encoding: enable opt-in EncodingWarning for 'encoding=None'

--check-hash-based-pycs always|default|never:
    control how Python invalidates hash-based .pyc files
file   : program read from script file
-      : program read from stdin (default; interactive mode if a tty)
arg ...: arguments passed to program in sys.argv[1:]

Other environment variables:
PYTHONSTARTUP: file executed on interactive startup (no default)
PYTHONPATH   : ':'-separated list of directories prefixed to the
               default module search path.  The result is sys.path.
PYTHONHOME   : alternate <prefix> directory (or <prefix>:<exec_prefix>).
               The default module search path uses <prefix>/lib/pythonX.X.
PYTHONPLATLIBDIR : override sys.platlibdir.
PYTHONCASEOK : ignore case in 'import' statements (Windows).
PYTHONUTF8: if set to 1, enable the UTF-8 mode.
PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.
PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.
PYTHONHASHSEED: if this variable is set to 'random', a random value is used
   to seed the hashes of str and bytes objects.  It can also be set to an
   integer in the range [0,4294967295] to get hash values with a
   predictable seed.
PYTHONMALLOC: set the Python memory allocators and/or install debug hooks
   on Python memory allocators. Use PYTHONMALLOC=debug to install debug
   hooks.
PYTHONCOERCECLOCALE: if this variable is set to 0, it disables the locale
   coercion behavior. Use PYTHONCOERCECLOCALE=warn to request display of
   locale coercion and locale compatibility warnings on stderr.
PYTHONBREAKPOINT: if this variable is set to 0, it disables the default
   debugger. It can be set to the callable of your debugger of choice.
PYTHONDEVMODE: enable the development mode.
PYTHONPYCACHEPREFIX: root directory for bytecode cache (pyc) files.
PYTHONWARNDEFAULTENCODING: enable opt-in EncodingWarning for 'encoding=None'.

Back to Top

Installation

Source code is obtained from Python

System

64-bit Linux