User Tools

Site Tools


other:uvcdat:cdat_conda:miniconda3_install

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
other:uvcdat:cdat_conda:miniconda3_install [2024/04/11 16:04]
jypeter [Using mamba instead of conda]
other:uvcdat:cdat_conda:miniconda3_install [2024/04/17 15:46]
jypeter Added the Uninstall section
Line 21: Line 21:
 /​path_to_miniconda/​envs/​cdatm_py3/​bin/​python /​path_to_miniconda/​envs/​cdatm_py3/​bin/​python
 </​code>​ </​code>​
-    * The //special// environment where //​Miniconda3//​ itself is installed is called ''​base''​. Note that the ''​python''​ binary of the //special// ''​base''​ environment is not located in the same directory hierarchy as the ''​python''​ of the other environments (i.e. there is no ''​envs/''​ subdirectory<​code>​$ conda activate base+    * The //special// environment where //​Miniconda3//​ itself is installed is called ''​base'' ​(it also used to be called ''​root''​). Note that the ''​python''​ binary of the //special// ''​base''​ environment is not located in the same directory hierarchy as the ''​python''​ of the other environments (i.e. there is no ''​envs/''​ subdirectory<​code>​$ conda activate base
  
 (base) $ which python (base) $ which python
Line 32: Line 32:
     * Choose carefully where you will install //​Miniconda3//,​ because the size of the installation directory will start at a few Gb and will keep on growing     * Choose carefully where you will install //​Miniconda3//,​ because the size of the installation directory will start at a few Gb and will keep on growing
  
-  * You //could// also start with the full //​Anaconda//​ (instead of //​Miniconda//​) installer that will install a much more complete python environment,​ ready for use.\\ \\ **We choose not to use the full Anaconda installer** because: +  * You //could// also start with the full //​Anaconda//​ (instead of //​Miniconda//​) installer that will install a much more complete python environment,​ ready for use.\\ **We choose not to use the full //Anaconda// installer** because: 
-    * it requires more disk space than //​Miniconda3// ​at the beginning+    * it requires more disk space than //​Miniconda3// ​during ​the initial installation
-    * and all its packages come from the ''​default''​ //channel// (or //​repository//​) provided by the [[https://docs.conda.io/projects/​conda/​en/​latest/​glossary.html#​conda-repository|conda repository]].\\ This is not very useful for us (and could even cause complex dependency problems later) because we will be mostly using (the same) packages provided by the [[https://​conda-forge.org/​feedstock-outputs/​|conda-forge]] //​channel//,​ **in order to avoid complex package dependency problems**.+    * all the //​Anaconda//​ installer ​packages come from the ''​default''​ //channel// (or //​repository//​) provided by the [[https://anaconda.org/|conda repository]].\\ This is not very useful for us (and could even cause complex dependency problems later) because we will be mostly using (the same) packages provided by the [[https://​conda-forge.org/​feedstock-outputs/​|conda-forge]] //​channel//,​ **in order to avoid complex package dependency problems**.
  
-Note: some extra details are available on the much older page //​Installing and maintaining UV-CDAT with conda//. You can check later the [[other:​uvcdat:​conda_notes#​useful_conda_commands|Useful conda commands]], but the [[https://​docs.conda.io/​projects/​conda/​en/​latest/​index.html|official conda documentation]] and the [[https://​docs.conda.io/​projects/​conda/​en/​latest/​user-guide/​cheatsheet.html|Cheat sheet]] are probably more up-to-date. +===== Installing miniconda3 on a Linux-like ​or Windows ​computer =====
- +
-===== Installing miniconda3 on a Linux-like computer =====+
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
Line 332: Line 330:
   * ask //tcsh// users to add to ''​~/​.cshrc''​ something like\\ ''​source ​ ~main_installer_login/​.conda3_jyp.csh''​\\ \\ with a ''​.conda3_jyp.csh''​ file looking like {{ :​other:​uvcdat:​cdat_conda:​conda3_jyp.csh.txt |}}   * ask //tcsh// users to add to ''​~/​.cshrc''​ something like\\ ''​source ​ ~main_installer_login/​.conda3_jyp.csh''​\\ \\ with a ''​.conda3_jyp.csh''​ file looking like {{ :​other:​uvcdat:​cdat_conda:​conda3_jyp.csh.txt |}}
  
-===== Keeping ​miniconda3 ​up-to-date =====+===== Keeping ​Miniconda3 ​up-to-date ===== 
 + 
 +  * Just type ''​conda update -n base %%--%%all''​ as shown in the [[#​updating_mini_conda|Updating (Mini)conda]] section 
 + 
 +  * The ''​base''​ (miniconda3) and the other environments are all independent and can be updated independently 
 + 
 +  * It is up to you to decide if you want to update environments or not 
 +===== conda resources ===== 
 + 
 + 
 + 
 + 
 +==== Web sites ==== 
 + 
 +  * [[https://​docs.conda.io/​projects/​conda/​en/​stable/​|Official conda website]] 
 +    * [[https://​docs.conda.io/​projects/​conda/​en/​stable/​user-guide/​cheatsheet.html|Cheat sheet]] (2 pages, for people in a hurry) 
 +    * [[https://​docs.conda.io/​projects/​conda/​en/​stable/​commands/​|Commands'​ reference]] 
 +  * Package repositories 
 +    * [[https://​conda-forge.org/​packages/​|conda-forge]] <= recommended source of packages 
 +    * [[https://​anaconda.org/​|default]] 
 + 
 + 
 +==== Useful conda commands ==== 
 + 
 +This is just a subset of some of the commands, and a subset of their options! For a complete reference, use the [[https://​docs.conda.io/​projects/​conda/​en/​stable/​|official conda website]] 
 + 
 +  * **Get help** 
 +    * ''​conda -h''​ 
 +      * ''​conda //command// %%--%%help'':​ help for a specific //​command//​ 
 + 
 +  * **Available environments** 
 +    * ''​conda env list''​ 
 +    * The currently active environment has a "​*****"​ character on its line<​code>​(base) $ conda env list 
 +# conda environments:​ 
 +
 +base                  *  /​homedata/​jypmce/​miniconda3_2024-03</​code>​ 
 + 
 +  * **Activate** an existing environment (available in ''​conda env list''​) or **deactivate**,​ in order to go back to the default Python 
 +    * ''​conda activate existing_environment''​ 
 +      * ''​conda activate''​ (without specifying an environment name) will **activate the ''​base''​ Miniconda3 environment** 
 +    * Go back to the default Python available on the system 
 +      * ''​conda deactivate''​ 
 +    * You can type ''​which python''​ to determine where is the current ''​python''​ executable you are using is\\ You should **always know which Python you are using!** 
 +      * <​code>​(base) $ which python 
 +/​homedata/​jypmce/​miniconda3_2024-03/​bin/​python 
 + 
 +(base) $ conda deactivate 
 + 
 +$ which python 
 +/​usr/​bin/​python</​code>​ 
 +    * Note: //before conda ''​4.6''//,​ you had to type ''​**source** activate existing_environment''​ and ''​**source** deactivate''​ 
 + 
 +  * Get the **list of installed packages**, their version, and where they come from (e.g. ''​conda-forge'',​ ''​pip''​) 
 +    * ''​conda list [-n existing_environment]''​ 
 + 
 +  * **Create an environment** and install a few packages and their dependencies 
 +    * ''​conda create -n new_environment_name package1 package2 packageN''​ 
 + 
 +  * **Delete an environment** 
 +    * ''​conda remove -n crap_environment %%--%%all''​ 
 + 
 +  * **Find out if a package is available** on the //​conda-forge//​ channel (or other channels) 
 +    * Note: you should always install a package with ''​conda''​ instead of ''​pip'',​ if it is available on a //conda channel// 
 +    * ''​conda search package_exact_name''​\\ ''​conda search '​*package_partial_name*'''​ 
 +      * Note: ''​search''​ with wildcards fails in a //tcsh// shell, as of April 2024 ([[https://​github.com/​conda/​conda/​issues/​9771|CSH install/​search fail with '​*'​ variable in an argument]]) 
 + 
 +  * **Install and remove packages**\\ Add ''​-n target_environment''​ to make changes in another environment than the active one 
 +    * ''​conda install package1 package2 packageN''​ 
 +      * ''​conda''​ should already be [[#​fine-tuning_conda_to_use_only_conda-forge|configured to use conda-forge by default]] if you have read this page carefully 
 +      * Add ''​-c channel_url_or_alias''​ to install from a specific //​channel//​ 
 +    * ''​conda remove package1 package2 packageN''​ 
 + 
 +  * **Update** just ''​conda''​ (update the //conda// package, not the full Miniconda3 //base// environment) 
 +    * ''​conda update -n base conda''​ 
 + 
 +  * **Completely update an environment** (all the packages) 
 +    * ''​conda update -n existing_environment %%--%%all''​ 
 + 
 +  * **Cleaning... <wrap em>​Dangerous</​wrap>​**!\\ If you have several environments,​ ''​conda clean''​ may remove packages that are not needed in an environment,​ but are still used in other environments,​ and **you may end up with a broken installation...**\\ ''​conda''​ does not automatically clean the content of the ''​pkgs''​ directory!\\ Use the following to //Remove index cache, lock files, tarballs, unused cache packages, and source cache// 
 +    * ''​conda clean %%--%%all''​ 
  
 +==== conda, pip and virtualenv ====
  
-===== FIXME Using mamba instead of conda =====+  * Read the [[https://​docs.conda.io/​projects/​conda/​en/​stable/​commands/#​conda-vs-pip-vs-virtualenv-commands|Conda vs. pip vs. virtualenv commands]] section
  
-Even when using a proper ''​.condarc''​ in order to get packages coming only from //​conda-forge//,​ ''​conda install''​ may fail to solve the dependencies after meditating during an enormous time (e.g. [[https://github.com/conda/​conda/​issues/9367#issuecomment-793968239|Solving ​environment: failed with initial frozen solve. Retrying with flexible solve.]]), when we try to deal with **complex environments** (i.e. we already have lots of installed packages and we want to add even more packages).+  * Read the [[https://docs.conda.io/​projects/conda/en/stable/​user-guide/​tasks/​manage-environments.html#using-pip-in-an-environment|Using pip in an environment]] 
 +==== Installation history ====
  
-Using CDAT as a base environment,​ and adding a lot of extra packages is a **complex environment**. 
  
-The only solution seems to replace ''​conda''​ with [[https://​github.com/​mamba-org/​mamba|mamba]],​ a reimplementation of the conda package manager in C++ ([[https://​wolfv.medium.com/​making-conda-fast-again-4da4debfb3b7|Making conda fast again]]): +===== Uninstalling Miniconda3 =====
-  * Install ''​mamba''​ in the //base// (i.e. //​miniconda//​) environment\\ ''​conda install mamba -n base -c conda-forge''​ +
-  * Use ''​mamba''​ instead of ''​conda''​ when installing packages.\\ Theoretically,​ you don't need to specify ''​install -c conda forge''​ any more, because ''​conda-forge''​ is now the default source of new packages\\ ''​mamba install lots_of_packages''​+
  
  
other/uvcdat/cdat_conda/miniconda3_install.txt · Last modified: 2024/07/08 13:28 by jypeter