Difference between revisions of "Applications/Python"

From HPC
Jump to: navigation , search
Line 62: Line 62:
 
Submitted batch job 289522
 
Submitted batch job 289522
 
</pre>
 
</pre>
 +
 +
=== Virtual Environments ===
 +
A Python Virtual Environment allows users to create a custom environment/s in which they can have the packages, and versions of said packages that they require without having to have elevated user privileges on the system.
 +
 +
There are many benefits to using a virtual environment on a system. Here is a short not exhaustive list of a a few of the key benefits:
 +
 +
* Control over packages and package versions
 +
* An arbitrary number of virtual environments can be created for different tasks
 +
* Reproducibility - A user can replicate a python environment on any system, so as to be able to run or re-run a particular task or job under the same conditions
 +
 +
   
  
  
Line 80: Line 91:
 
|-
 
|-
 
|}
 
|}
=== Virtual Environments ===
 
A Python Virtual Environment allows users to create a custom environment/s in which they can have the packages, and versions of said packages that they require without having to have elevated user privileges on the system.
 

Revision as of 16:34, 27 February 2018

Application Details

  • Description: Python is a high-level interpreted programming language for general-purpose programming, supported by a large number of libraries for many tasks
  • Versions: Python 2.7.11 and 3.5.1
  • Module names: python/2.7.11 python/3.5.1
  • License: Free to use - Python Software Foundation License


Usage Examples

Python is provided by the Anaconda package too

Interactive

Interactive with command line:

[username@c170 ~]$ module add python/anaconda/4.0/2.7
[username@c170 ~]$ python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Interactive with command line with IPython:

[username@c170 ~]$ ipython
Python 2.7.13 |Anaconda custom (64-bit)| (default, Dec 20 2016, 23:09:15)
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]:

Batch Submission

#!/bin/bash
#SBATCH -J PythonTest                # Job name, you can change it to whatever you want
#SBATCH -N 1                                  # Number of nodes 
#SBATCH --ntasks-per-node 1    # Number of cores per node
#SBATCH -o %N.%j.out                # Standard output will be written here
#SBATCH -e %N.%j.err                 # Standard error will be written here
#SBATCH -p compute                  # Slurm partition, where you want the job to be queued 

 
module purge
module add python/3.5.1
 
python PythonTest.py

This is then submitted as follows:

[username@login01 ~]$ sbatch Pythontest.job
Submitted batch job 289522

Virtual Environments

A Python Virtual Environment allows users to create a custom environment/s in which they can have the packages, and versions of said packages that they require without having to have elevated user privileges on the system.

There are many benefits to using a virtual environment on a system. Here is a short not exhaustive list of a a few of the key benefits:

  • Control over packages and package versions
  • An arbitrary number of virtual environments can be created for different tasks
  • Reproducibility - A user can replicate a python environment on any system, so as to be able to run or re-run a particular task or job under the same conditions



Further Information

Icon home.png