Python-Teaching: Difference between revisions
No edit summary |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
=== Version === | === Version === | ||
2.7. | 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 === | ||
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/ | 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/ | 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/ | ml Python/3.10.4-GCCcore-11.3.0 | ||
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 | -b : issue warnings about str(bytes_instance), str(bytearray_instance) | ||
and comparing bytes/bytearray with str. (-bb: issue errors) | |||
-B : don't write . | -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 | -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 : | -O : remove assert and __debug__-dependent statements; add .opt-1 before | ||
-OO : | .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 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 stdout and stderr streams to be unbuffered; | |||
-u : | this option has no effect on stdin; 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 | ||
-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 | ||
- | -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', | 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 | |||
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> |
Latest revision as of 15: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
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'.
Installation
Source code is obtained from Python
System
64-bit Linux