Installing your own Python Modules

From SciNet Users Documentation
Jump to navigation Jump to search

Python Virtual Environments

Virtual environments (short virtualenv) are a standard in Python to create isolated Python environments. This is useful when certain modules or certain versions of modules are not available in the thee default python environment.

VirtualEnv can be used either with the default python modules or the anaconda ones.

Using Python VirtualEnv in Anaconda

VirtualEnv are right builtin in Anaconda, see [1] You will just need to load the proper anaconda module, eg.

 # load the anaconda module
 module load python/3.6.4-anaconda5.1.0
 # create a virtual env.
 conda create -n test python=3.6
 # activate your vitual env.
 source activate test

 # at this point you are in your own environment and probably can follow any of the installation methods suggested in the package,
 git clone git:// fuzzywuzzy
 cd fuzzywuzzy/
 python install

# OR
 pip install fuzzywuzzy[speedup]

Using Python Virtualenv in plain Python

First load a python module:

module load intel/13.1.1 python/2.7.5

Then install virtualenv:

pip install virtualenv --user

Then create a directory for the virtual environments. One can put an virtual environment anywhere, but this directory structure is recommended:

mkdir ~/.virtualenvs
cd ~/.virtualenvs

Now we create our first virtualenv called myenv choose any name you like:

~/.local/bin/virtualenv myenv

After that we can activate that virtual environment:

source ~/.virtualenvs/myenv/bin/activate

To go back to the normal python installation simply type "deactivate" As you are in the virtualenv now you can just type pip install <required module> to install any module in your virtual environment

Installing the scientific python suite

For many scientific codes the packages numpy, scipy, matplotlib, pandas and ipython are used. Except scipy all of these install very simply in a virtualenv using the pip install <package name>.

For installing scipy we first need to install numpy and then copy scinet's site.cfg (contains paths to the required libraries for scipy). So before doing "pip install scipy" do

cp /scinet/gpc/tools/Python/Python275-shared-intel/lib/python2.7/site-packages/numpy/distutils/site.cfg ~/.virtualenvs/myenv/lib/python2.7/site-packages/numpy/distutils/

and then just do pip install scipy