Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
stylenone

...

General Process

Info

Below demonstrates the general process for:

  • Setting up your environment to use Conda via a module load.

  • How to create a conda environment.

  • How to activate/start your environment and install packages.

  • How to then use what you’ve installed.

  • And then how to deactivate/finish using your environment.

Code Block
[]$ module load miniconda3/purge
[]$ module load miniconda3/24.3.0
[]$ conda search python
[]$ conda create -n py_env
[]$ conda activate py_env
(py_env) []$ conda install python=3.12.4
(py_env) []$ python --version
Python 3.12.4
(py_env) []$ conda search numpy
(py_env) []$ conda install numpy
(py_env) []$ python -c "import numpy; print(numpy.__version__)"
1.26.4
(py_env) []$ conda deactivate
[]$

...

Search for Packages

Info

Conda enables you look up and search for packages and what versions are available.

Code Block
[]$ conda search python
Loading channels: done
# Name                       Version           Build  Channel
python                        2.7.13     hac47a24_15  pkgs/main
...
python                        3.12.3      h996f2a0_1  pkgs/main
python                        3.12.4      h5148396_1  pkgs/main
Info

Notice: Although Python version 2 has been deprecated, it is still used for old packages/modules/scripts. You can create a conda environment that provides this old, no longer supported version.

This is how ARCC provides this version on the cluster.

Code Block
(py_env) []$ conda search numpy
Loading channels: done
# Name                       Version           Build  Channel
numpy                          1.9.3 py27_nomklhbee5d10_3  pkgs/main
...
numpy                         1.26.4  py39heeff2f4_0  pkgs/main

Create an Environment

Code Block
[]$ conda create -n py_env
Channels:
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##
  environment location: /home/salexan5/.conda/envs/py_env

Proceed ([y]/n)? y
Info

Note the location that the environment will be saved to: environment location: /home/salexan5/.conda/envs/py_env

Create an Environment: Proceed

Code Block
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate py_env
#
# To deactivate an active environment, use
#
#     $ conda deactivate
Info

Note the command required to activate your environment: conda activate py_env

This will be required every time you wish to use it.

Activate an Environment

Code Block
[]$ conda activate py_env
(py_env) []$ 
Info

Note how the command line prompt has changed once the environment has been activated: (py_env) [...]

This indicates the name of the conda environment that is currently active.

Conda Install a Version of Python

Code Block
(py_env) []$ conda install python=3.12.4
(py_env) []$ conda install python=3.12.4 Channels: - defaults Platform: linux-64 Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ## environment location: /home/salexan5/.conda/envs/py_env added / updated specs: - python=3.12.4 The following packages will be downloaded: package

Expand
titleOutput of what is happening:
Code Block

...

Create an Environment

Info

Use the create sub command to create your environment.

The -n option will create your environment (which is just a folder) in the default configured location.

Out the box, this will be under: /home/<username>/.conda/envs/

Code Block
[]$ conda create -n py_env
Channels:
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##
  environment location: /home/salexan5/.conda/envs/py_env

Proceed ([y]/n)? y
Info

Note the location that the environment will be saved to: environment location: /home/salexan5/.conda/envs/py_env

...

Create an Environment: Proceed

Code Block
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate py_env
#
# To deactivate an active environment, use
#
#     $ conda deactivate
Info

Note the command required to activate your environment: conda activate py_env

This will be required every time you wish to use it.

...

Activate an Environment

Info

Before you can use a conda environment it must be activated.

Every time you want to use it, you must remember to activate it.

Code Block
[]$ conda activate py_env
(py_env) []$ 
Info

Note: See how the command line prompt has changed once the environment has been activated: (py_env) [...]

This indicates the name of the conda environment that is currently active.

...

Conda Install a Version of Python

Info

Once a conda environment is active, you can start to use it, and one aspect of this is to install conda packages.

Code Block
(py_env) []$ conda install python=3.12.4
Expand
titleOutput of what is happening:
Code Block
(py_env) []$ conda install python=3.12.4
Channels:
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/salexan5/.conda/envs/py_env

  added / updated specs:
    - python=3.12.4

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    pip-24.0                   |  py312h06a4308_0         3.3 MB
    setuptools-69.5.1          |  py312h06a4308_0         1.3 MB
    wheel-0.43.0               |  py312h06a4308_0         142 buildKB
    -------------------------------|----------------------------
    pip-24.0    
              |  py312h06a4308_0         3.3 MB     setuptools-69.5.1          |  py312h06a4308_0Total:         14.37 MB

The following  wheel-0.43.0   NEW packages will be INSTALLED:

  _libgcc_mutex        |  py312h06a4308_0         142 KBpkgs/main/linux-64::_libgcc_mutex-0.1-main
  _openmp_mutex       ------------------------------------------------------------
       pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
  bzip2              pkgs/main/linux-64::bzip2-1.0.8-h5eee18b_6
  ca-certificates    pkgs/main/linux-64::ca-certificates-2024.3.11-h06a4308_0
  expat              pkgs/main/linux-64::expat-2.6.2-h6a678d5_0
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1
  libffi             Total:         4.7 MB

The following NEW packages will be INSTALLED:pkgs/main/linux-64::libffi-3.4.4-h6a678d5_1
  libgcc-ng    _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main-ng-11.2.0-h1234567_1
  libgomp      _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
  bzip2    libgomp-11.2.0-h1234567_1
  libstdcxx-ng          pkgs/main/linux-64::bzip2-1libstdcxx-ng-11.2.0.8-h5eee18b_6h1234567_1
  libuuid        ca-certificates    pkgs/main/linux-64::calibuuid-certificates-20241.341.115-h06a4308h5eee18b_0
  expatncurses              pkgs/main/linux-64::expatncurses-2.6.2-h6a678d5_0
  ld_impl_linux-646.4-h6a678d5_0
  openssl            pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1openssl-3.0.14-h5eee18b_0
  pip   libffi             pkgs/main/linux-64::libffipip-324.4.40-h6a678d5_1py312h06a4308_0
  python   libgcc-ng          pkgs/main/linux-64::libgccpython-ng-113.212.04-h1234567h5148396_1

 libgomp readline           pkgs/main/linux-64::libgompreadline-118.2.0-h1234567h5eee18b_10
  setuptools  libstdcxx-ng       pkgs/main/linux-64::libstdcxxsetuptools-ng-1169.25.01-h1234567py312h06a4308_10
  libuuidsqlite             pkgs/main/linux-64::libuuidsqlite-13.4145.53-h5eee18b_0
  tk   ncurses              pkgs/main/linux-64::ncursestk-8.6.414-h6a678d5h39e8969_0
  openssltzdata             pkgs/main/linux-64noarch::openssl-3.0.14-h5eee18btzdata-2024a-h04d1e81_0
  pipwheel                pkgs/main/linux-64::pipwheel-240.43.0-py312h06a4308_0
  xz    python             pkgs/main/linux-64::pythonxz-35.124.46-h5148396h5eee18b_1
  readlinezlib               pkgs/main/linux-64::readlinezlib-81.2.13-h5eee18b_01

 setuptools         pkgs/main/linux-64::setuptools-69.5.1-py312h06a4308_0
  sqlite             pkgs/main/linux-64::sqlite-3.45.3-h5eee18b_0
  tk                 pkgs/main/linux-64::tk-8.6.14-h39e8969_0
  tzdataProceed ([y]/n)? y

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Info

Note all the addition dependencies/libraries that are being installed into the environment

Lets check the version installed, within are active environment.

Code Block
(py_env) []$ python --version
Python 3.12.4

...

Conda Install the numpy Package

Info

Let’s first check if numpy is available as a package, and if it is, which versions are available.

Code Block
(py_env) []$ conda search numpy
Loading channels: done
# Name             
pkgs/main/noarch::tzdata-2024a-h04d1e81_0
   
wheel
       Version    
pkgs/main/linux-64::wheel-0.43.0-py312h06a4308_0
   
xz
    Build  Channel
numpy          
pkgs/main/linux-64::xz-5.4.6-h5eee18b_1
   
zlib
             1.9.3 py27_nomklhbee5d10_3  pkgs/main
/linux-64::zlib-1.2.13-h5eee18b_1 Proceed ([y]/n)? y Downloading and Extracting Packages: Preparing transaction: done Verifying transaction: done Executing transaction: done
Info

Note all the addition dependencies/libraries that are being installed into the environment

Lets check the version installed, within are active environment.

Code Block
(py_env) []$ python --version
Python 3.12.4

...


...
numpy                         1.26.4  py39heeff2f4_0  pkgs/main

Code Block
(py_env) []$ conda install numpy
Expand
titleOutput of what is happening:
Code Block
(py_env) []$ conda install numpy
Channels:
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/salexan5/.conda/envs/py_env

  added / updated specs:
    - numpy

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    mkl-service-2.4.0          |  py312h5eee18b_1          66 KB
    mkl_fft-1.3.8              |  py312h5eee18b_0         204 KB
    mkl_random-1.2.4           |  py312hdb19cb5_0         284 KB
    numpy-1.26.4               |  py312hc5e2394_0          11 KB
    numpy-base-1.26.4          |  py312h0da6c21_0         7.7 MB
    ------------------------------------------------------------
                                           Total:         8.2 MB

The following NEW packages will be INSTALLED:

  blas               pkgs/main/linux-64::blas-1.0-mkl
  intel-openmp       pkgs/main/linux-64::intel-openmp-2023.1.0-hdb19cb5_46306
  mkl                pkgs/main/linux-64::mkl-2023.1.0-h213fc3f_46344
  mkl-service        pkgs/main/linux-64::mkl-service-2.4.0-py312h5eee18b_1
  mkl_fft            pkgs/main/linux-64::mkl_fft-1.3.8-py312h5eee18b_0
  mkl_random         pkgs/main/linux-64::mkl_random-1.2.4-py312hdb19cb5_0
  numpy              pkgs/main/linux-64::numpy-1.26.4-py312hc5e2394_0
  numpy-base         pkgs/main/linux-64::numpy-base-1.26.4-py312h0da6c21_0
  tbb                pkgs/main/linux-64::tbb-2021.8.0-hdb19cb5_0

Proceed ([y]/n)? y

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Info

...

(Again) Note: See all the addition dependencies/libraries that are being installed into the environment

If no package version is defined, typically it’ll install the latest version.

Lets check the version installed, within are active environment.

...

Code Block
[]$ python --version
Python 3.12.2

[]$ python -c "import numpy; print(numpy.__version__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'

Using the Environment

Code Block
: No module named 'numpy'

...

(Re-)Using the Environment

Info

To re-use a conda environment, you must activate it again.

But, you do not have to re-create it. Creation only happens once.

Code Block
[]$ module purge
[]$ module load miniconda3/24.3.0
[]$ conda activate py_env
(py_env) []$ python --version
Python 3.12.4
(py_env) []$ python -c "import numpy; print(numpy.__version__)"
1.26.4
(py_env) []$ conda deactivate
[]$
Info

Note how the : The conda environment must be activated to use it.

...

Adding to an Existing Environment

Info

Although we only need to create a conda environment once, we can add/update it every time we use it.

Let’s go back into are existing conda environment and add the pandas package.

Code Block
[]$ module purge
[]$ module load miniconda3/24.3.0
[]$ conda activate py_env
(py_env) []$ conda install pandas
(py_env) []$ python py_test.py
Python: 3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 15:12:24) [GCC 11.2.0]
Numpy: 1.26.4
Pandas: 2.2.2
(py_env) []$ conda deactivate

...