--- jupyter: jupytext: text_representation: extension: .md format_name: markdown format_version: '1.2' jupytext_version: 1.3.2 kernelspec: display_name: Python 3 language: python name: python3 --- An introduction to Conda ======================



August 12, 2021
Department of Aerospace Engineering, IIT Bombay
Prabhu Ramachandran
Agenda ------ - Introduction to conda - Basic usage and practices - Conda environments Why ------ - Very popular - Helps manage large, complex, binary packages - Do not have to be superuser/administrator Installation and setup ------------- - Two popular installers: anaconda and miniconda - Download/install miniconda for your operating system - https://docs.conda.io/en/latest/miniconda.html - Install it - Activate it for your shell Environments --------- - Isolated Python universe - Does not affect other environments - Cheap to create - Easy to maintain Preliminaries ------ - Make sure you have installed conda - Start a terminal and activate conda Let us get started --------- - List the existing environments ```bash $ conda info --envs ``` - Avoid messing with the base environment - Use help ```bash $ conda --help $ conda info --help $ conda create --help ``` Creating an environment -------------- ```bash $ conda create --name myenv python numpy matplotlib ipython ``` or ```bash $ conda create -n myenv python numpy matplotlib ipython ``` At least: ```bash $ conda create -n myenv python ``` Specifying a Python version ----------------------------- ```bash $ conda create -n myenv python=3.8 ``` Activating and using environments ---------------------------------- ```bash $ conda activate myenv (myenv) $ ``` or ```bash $ source activate myenv (myenv) $ ``` - Install packages ```bash $ conda install scipy pandas ``` - Search ```bash $ conda search scikit-learn ``` Activating and using environments ---------------------------------- - List ```bash $ conda list $ conda list -n otherenv ``` - Remove packages ```bash $ conda uninstall scikit-learn ``` Updating packages/environments ---------------------------------- - Inside an environment ```bash (myenv) $ conda update scipy ``` - In another environment ```bash $ conda update -n myenv scipy ``` - Everything ```bash $ conda update --all ``` Deactivating and removing an environment -------------------------------- ```bash (myenv) $ conda deactivate ``` or ```bash (myenv) $ deactivate ``` Switch to another: ```bash (myenv) $ conda activate test (test) $ ``` Remove the environment ```bash $ conda remove -n myenv --all ``` Conda channels --------------- - Identified by a name: defaults, conda-forge - Many user-created channels - conda-forge among the most useful - Adding at the top ```bash $ conda config --add channels conda-forge ``` - Adding at the bottom ```bash $ conda config --append channels new_channel ``` - Install from specific channel ```bash $ conda install -c conda-forge pytorch ``` Sharing environments ------------- - Dump list of packages ```bash $ conda env export -n myenv > environment.yml ``` - Create ```bash $ conda env create --file environment.yml ``` - OS specific: ```bash $ conda list --explicit > pkgs.txt ``` ```bash $ conda create -n junk --file pkgs.txt ``` Miscellaneous ------------- - Update conda ```bash $ conda update conda ``` - Detailed info ```bash $ conda search scipy --info ``` ```bash $ conda search -c conda-forge scipy=1.1 $ conda search -c defaults "scipy>1.7" --info ``` Learning more ------------- - https://conda.io/projects/conda/en/latest/user-guide/index.html - https://conda.io/projects/conda/en/latest/user-guide/cheatsheet.html