From 069bff2ed098913182be4c9317ef7c5a393d0716 Mon Sep 17 00:00:00 2001 From: Prabhu Ramachandran Date: Sat, 14 Aug 2021 19:19:44 +0530 Subject: Adding slides on conda. --- slides/devtools/conda.md | 323 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 323 insertions(+) create mode 100644 slides/devtools/conda.md diff --git a/slides/devtools/conda.md b/slides/devtools/conda.md new file mode 100644 index 0000000..ac14703 --- /dev/null +++ b/slides/devtools/conda.md @@ -0,0 +1,323 @@ +--- +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 + + -- cgit