Fundamental Operations within a Conda Environment
Introduction
Conda is an open-source utility tool used for machine learning and scientific computing tasks with the following key functionalities:
- Environment management: Independent environments allow you to install different versions of the same software package without any dependency conflicts with other system packages
- Package management: Conda handles complex dependency chains to install necessary packages for use in an active environment
This guide explains the fundamental operations in a Conda environment. You will apply Conda commands to manage environments, install packages, and handle different package versions on a server.
Prerequisites
Before you begin, you need to:
Deploy a Miniconda or Anaconda server using the Vultr Marketplace application
To manually install Conda on your existing server, either install Minicondaor Anaconda
Using SSH, access the server
Create a new non-root sudo user
Switch to the non-root sudo user account
# su pythonuser
> This guide uses
pythonuser
, replace the user account with your actual sudo user
Conda Command Usage
View the available Conda Version on your server
$ conda --version
Output:
conda 23.7.2
View information about the Conda installation on your server
$ conda info
Your output should look like the one below:
active environment : env1 active env location : /home/pythonuser/miniconda3/envs/env1 shell level : 1 user config file : /home/pythonuser/.condarc conda version : 23.3.1 python version : 3.10.10.final.0
Update Conda
$ conda update conda -y
To view information on the usage of a specific Conda command, use the following syntax
$ conda COMMAND --help
For example, view the
env
Conda command usage$ conda env --help
Output:
usage: conda-env [-h] command ... positional arguments: command
View information about the
env create
sub-command usage$ conda env create --help
Output:
usage: conda-env create [-h] [-f FILE] [-n ENVIRONMENT | -p PATH] [-C] [-k] [--offline] [--force] [--no-default-packages] [--json] [-v] [-q] [-d] [-y] [--solver {classic,libmamba} | --experimental-solver {classic,libmamba}] [remote_definition] Create an environment based on an environment definition file.
Manage Conda Environments
Create a new Conda environment. For example,
env1
$ conda create --name env1 -y
Activate the
env1
Conda environment$ conda activate env1
When successful, verify that your terminal prompt changes to the Conda environment
(env1) pythonuser@SERVER:~$
Deactivate the active Conda environment:
$ conda deactivate
When deactivated, your server terminal prompt changes back to its normal version. When using nested Conda environments, deactivate each environment until the prompt changes back to the non-coda session. For example:
(env2) pythonuser@SERVER:~$ conda deactivate (env5) pythonuser@SERVER:~$ conda deactivate
Manage Multiple Conda Environments
Create a new environment
env2
with a specific Python version$ conda create --name env2 python=3.9 -y
View the list of available Conda environments
$ conda env list
Output:
# conda environments: # base /home/pythonuser/miniconda3/ env1 /home/pythonuser/miniconda3/envs/env1 env2 /home/pythonuser/miniconda3//envs/env2
To delete a Conda environment, use the syntax below
$ conda remove --name ENVIRONMENT --all
For example, delete
env1
$ conda remove --name env1 --all
To rename an environment, use the following syntax
$ conda rename --name OLD-ENV-NAME NEW-ENV-NAME
For example, rename
env2
toenv3
$ conda rename --name env2 env3
Create a new environment
env4
as a clone of an existing environmentenv3
$ conda create --clone env3 --name env4
To create a new environment with pre-installed software packages, follow the syntax below
$ conda create --name ENV-Name PKG_NAME -c CHANNEL_NAME
For example, create
env5
with thepytorch
and CPU-only packages from the PyTorch channel$ conda create --name env5 pytorch cpuonly -c pytorch -y
Manage Conda Packages
View the list of installed packages in all Conda environments
$ conda list
Output:
# Name Version Build Channel _anaconda_depends 2023.07 py311_1 _libgcc_mutex 0.1 main _openmp_mutex 5.1 1_gnu abseil-cpp 20211102.0 hd4dd3e8_0 aiobotocore 2.5.0 py311h06a4308_0 aiofiles 22.1.0 py311h06a4308_0 aiohttp 3.8.5 py311h5eee18b_0
When you run the above command in a Conda environment, all installed packages display in your output. For example, activate the
env5
Conda environment$ conda activate env3
Run the
list
command again$ conda list
Your output should look like the one below:
# Name Version Build Channel _libgcc_mutex 0.1 main _openmp_mutex 5.1 1_gnu ca-certificates 2023.08.22 h06a4308_0 cpuonly 2.0 0 pytorch python 3.11.5 h955ad1f_0 pytorch 2.0.1 py3.11_cpu_0 pytorch pytorch-mutex 1.0 cpu pytorch
View the list of installed packages in a different environment. For example
env3
$ conda list --name env3
When searching packages, Conda uses the default channel, to specify a target channel with Conda packages, follow the syntax below
$ conda search PKG_NAME -c CHANNEL_NAME
For example, search the
pytorch
package in thepytorch
channel$ conda search pytorch -c pytorch
To install a specific package in your Conda environment, follow the syntax below
$ conda install PACKAGE -c CHANNEL_NAME
OR
$ conda install channel_name::pkg_name
For example, install the PyTorch package from the
pytorch
channel$ conda install pytorch::pytorch -y
To install a specific package version, specify it next to the package. For example, install the PyTorch version
2.0.0
$ conda install pytorch=2.0.0 -c pytorch -y
If a newer version of the same package is available in the same environment, it's downgraded to the specified version. Also, if an older version of the package is available in the environment, it's upgraded to the set version
Update all installed packages in a Conda environment
$ conda update --all -y
To update all installed packages in a different environment such as
env6
. Run the following command$ conda update --all --name env6 -y
To update a specific package, specify it after the update declaration. For example, update the PyTorch package in your environment
$ conda update pytorch -y
To uninstall a package, use the syntax below
$ conda remove ENVIRONMENT PACKAGE -y
For example, uninstall
pytorch
from theenv4
environment$ conda remove --name env4 pytorch -y
When a target environment is not specified, the above command uninstalls the package from the active environment
Import and Export Environments
To export a Conda environment to a single file, use the following listing syntax
$ conda list --explicit --name ENVIRONMENT > EXPORT-FILENAME
For example, to export
env6
to arequirements_env6.txt
file, run the following command$ conda list --explicit --name env6 > requirements_env6.txt
To export the file to another format such as
.yaml
, specify the file extension$ conda list --explicit --name env6 > requirements_env6.yaml
To import a file as a new Conda environment, specify the source file. For example, create
env7
using theenv6
export file$ conda create --name env7 --file requirements_env6.txt
When created, view the list of available Conda environments
$ conda env list
Output:
env6 * /root/anaconda/envs/env6 env7 /root/anaconda/envs/env7
Use Pip with Conda
To extend the Conda package sources, install packages using the Python Pip package manager. Installed packages are only visible in the respective Conda environments, install the package manager as described below.
Activate your target Conda environment. For example,
env3
$ conda activate env3
Using Pip, install the
scipy
package$ pip install scipy
When installed, Scipy is only available in the active
env3
environment.
Conclusion
You have explored fundamental operations you can perform within a Conda environment. Depending on your development environment, you can extensively manage environments and packages using Conda. For more information, visit the following Conda documentation resources: