Python-Teaching: Difference between revisions

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


=== Version ===
=== Version ===
3.6.4
2.7.18, 3.7.4, 3.8.6, 3.9.6, 3.10.4, 3.10.8
   
   
=== 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/3.6.4-foss-2018a
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/3.6.4-foss-2018a
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/3.6.4-foss-2018a<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/3.6.4-foss-2018a
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):
Line 66: Line 89:
-B    : don't write .pyc 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)
Line 73: Line 97:
-I    : isolate Python from the user's environment (implies -E and -s)
-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
-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
-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 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
-u    : force the binary I/O layers of stdout and stderr to be unbuffered;
-u    : force the stdout and stderr streams to be unbuffered;
         stdin is always buffered; text I/O layer will be line-buffered;
         this option has no effect on stdin; also PYTHONUNBUFFERED=x
        also PYTHONUNBUFFERED=x
-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
Line 88: Line 113:
         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
-X opt : set implementation-specific option
-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 155:
PYTHONHOME  : alternate <prefix> directory (or <prefix>:<exec_prefix>).
PYTHONHOME  : alternate <prefix> directory (or <prefix>:<exec_prefix>).
               The default module search path uses <prefix>/lib/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.
PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.
PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.
PYTHONHASHSEED: if this variable is set to 'random', a random value is used
PYTHONHASHSEED: if this variable is set to 'random', a random value is used
   to seed the hashes of str, bytes and datetime objects.  It can also be
   to seed the hashes of str and bytes objects.  It can also be set to an
  set to an integer in the range [0,4294967295] to get hash values with a
  integer in the range [0,4294967295] to get hash values with a
   predictable seed.
   predictable seed.
PYTHONMALLOC: set the Python memory allocators and/or install debug hooks
PYTHONMALLOC: set the Python memory allocators and/or install debug hooks
   on Python memory allocators. Use PYTHONMALLOC=debug to install debug
   on Python memory allocators. Use PYTHONMALLOC=debug to install debug
   hooks.
   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>

Latest revision as of 16:50, 13 May 2024

Category

Programming

Program On

Teaching

Version

2.7.18, 3.7.4, 3.8.6, 3.9.6, 3.10.4, 3.10.8

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