While our Python installations come with many popular packages installed, you may come upon a case in which you need an additional package that is not installed. If the specific package you are looking for is available from anaconda.org (formerlly binstar.org), you can easily install it and required dependencies by using the conda package manager.
The following steps are an example of how to set up a Python environment and install packages to a local directory using conda. We use the name
local for the environment, but you may use any other name.
Load proper Python module
python modules are based on Anaconda package manager, and
miniconda3 module is based on Miniconda package manager.
python modules are typically recommended when you use Python in a standard environment that we provide. However, if you want to create your own python environment, we recommend using
miniconda3 module, since you can start with minimal configurations.
module load miniconda3
Create Python installation to local directory
Three alternative create commands are listed. These cover the most common cases.
Create New Environment
The following will create a minimal Python installation without any extraneous packages:
conda create -n local
Clone base environment
If you want to clone the full base Python environment from the system, you may use the following create command:
conda create -n local --clone base
Create New Environment with specific packages
You can augment the command above by listing specific packages you would like installed into the environment. For example, the following will create a minimal Python installation with only the specified packages (in this case,
conda create -n local numpy babel
By default, conda will install the newest versions of the packages it can find. Specific versions can be specified by adding
=<version> after the package name. For example, the following will create a Python installation with Python version 2.7 and NumPy version 1.16:
conda create -n local python=2.7 numpy=1.16
To verify that a clone has been created, use the command
conda info -e
For additional conda command documentation see https://docs.conda.io/projects/conda/en/latest/commands.html#conda-general-commands
Before the created environment can be used, it must be activated.
For the bash shell:
source activate local
conda createstep, you may saw a message from the installer that you can use
conda activatecommand for activating environment. But, please don't use
conda activatecommand, because it will try to update your shell configuration file and it may cause other issues. So, please use
source activatecommand as we suggest above.
On newer versions of Anaconda on the Owens cluster you may also need to perform the removal of the following packages before trying to install your specific packages:
conda remove conda-build conda remove conda-env
To install additional packages, use the
conda install command. For example, to install the
conda install yt
By default, conda will install the newest version if the package that it can find. Specific versions can be specified by adding
=<version> after the package name. For example, to install version 1.16 of the NumPy package:
conda install numpy=1.16
If you need to install packages with
pip, then you can install
pip in your virtual environment by
conda install pip
Then, you can install packages with
pip install PACKAGE
Test Python package
Now we will test our installed Python package by loading it in Python and checking its location to ensure we are using the correct version. For example, to test that NumPy is installed correctly, run
python -c "from __future__ import print_function; import numpy; print(numpy.__file__)"
and verify that the output generally matches
To test installations of other packages, replace all instances of
numpy with the name of the package you installed.
Install your own Python packages
If the method using conda above is not working, or if you prefer, you can consider installing Python packages from the source. Please read HOWTO: install your own Python packages.
But I use virtualenv and/or pip!
See the comparison to these package management tools here:
Use pip only without conda package manager
pip installations are supported:
module load python module list # check which python you just loaded pip install --user --upgrade PACKAGE # where PACKAGE is a valid package name
Note the default installation prefix is set to the system path where OSC users cannot install the package. With the option
--user, the prefix is set to
$HOME/.local where lib, bin, and other top-level folders for the installed packages are placed. Finally, the option
--upgrade will upgrade the existing packages to the newest available version.
The one issue with this approach is portability with multiple Python modules. If you plan to stick with a single Python module, then this should not be an issue. However, if you commonly switch between different Python versions, then be aware of the potential trouble in using the same installation location for all Python versions.
Typically, you can install packages with the methods shown in Install packages section above, but in some cases where the conda package installations have no source from conda channels or have dependency issues, you may consider using
pip in an isolated Python virtual environment.
To create an isolated virtual environment:
module reset python3 -m venv --without-pip $HOME/venv/mytest --prompt "local" source $HOME/venv/mytest/bin/activate (local) curl https://bootstrap.pypa.io/get-pip.py |python # get the newest version of pip (local) deactivate
where we use the path
$HOME/venv/mytest and the name
local for the environment, but you may use any other path and name.
To activate and deactivate the virtual environment:
source $HOME/venv/mytest/bin/activate (local) deactivate
To install packages:
source $HOME/venv/mytest/bin/activate (local) pip install PACKAGE
You don't need the
--user option within the virtual environment.
Conda Test Drive: https://conda.io/docs/test-drive.html