This guide explains what is conda-forge
channel, how to install packages from conda-forge
and finally how to permanently enable conda-forge
channel for conda
package manager from commandline as well as from Anaconda Navigator GUI in Linux.
Table of Contents
What is conda-forge?
By default, the conda
package manager installs packages from the defaults
channel. All packages in the defaults
channel are thoroughly tested and maintained by the Conda team from Anaconda, Inc.
Apart from the official defaults
channel, there are some third-party channels available for hosting and managing packages. One such channel is conda-forge
.
Conda-forge is community-led channel that provides latest conda packages for a wide-range of software.
The defaults
channel may not always contain all packages. There could be some missing packages or it may contain outdated packages. The conda-forge
community tackles these issues by maintaining up-to-date packages with the help of thousands of contributors.
Conda-forge project is financially supported by NumFOCUS, a non-profit dedicated to support open source scientific computing community.
Install packages from conda-forge channel
It is possible to install packages from a specific channel without adding it in our system. Let us see an example.
It is recommended to always install packages from conda-forge
channel in a new environment instead of the default base
environment.
The following command will create a new environment named testapp and install pandas along with its supporting packages in the testapp environment:
$ conda create --channel conda-forge --name testapp pandas
Or,
$ conda create -c conda-forge -n testapp pandas
Here, -c
(--channel
) flag is used to explicitly mention the channel name i.e. conda-forge
in our case.
Activate the newly created "testapp" environment:
$ conda activate testapp
Check the origin of all installed packages in the environment:
$ conda list packages in environment at /home/sk/anaconda3/envs/testapp: # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 1_gnu conda-forge ca-certificates 2020.12.5 ha878542_0 conda-forge certifi 2020.12.5 py39hf3d152e_1 conda-forge ld_impl_linux-64 2.35.1 hea4e1c9_2 conda-forge libblas 3.9.0 8_openblas conda-forge libcblas 3.9.0 8_openblas conda-forge libffi 3.3 h58526e2_2 conda-forge libgcc-ng 9.3.0 h2828fa1_18 conda-forge libgfortran-ng 9.3.0 hff62375_18 conda-forge libgfortran5 9.3.0 hff62375_18 conda-forge libgomp 9.3.0 h2828fa1_18 conda-forge liblapack 3.9.0 8_openblas conda-forge libopenblas 0.3.12 pthreads_h4812303_1 conda-forge libstdcxx-ng 9.3.0 h6de172a_18 conda-forge ncurses 6.2 h58526e2_4 conda-forge numpy 1.20.1 py39hdbf815f_0 conda-forge openssl 1.1.1j h7f98852_0 conda-forge pandas 1.2.2 py39hde0f152_0 conda-forge pip 21.0.1 pyhd8ed1ab_0 conda-forge python 3.9.1 hffdb5ce_5_cpython conda-forge python-dateutil 2.8.1 py_0 conda-forge python_abi 3.9 1_cp39 conda-forge pytz 2021.1 pyhd8ed1ab_0 conda-forge readline 8.0 he28a2e2_2 conda-forge setuptools 49.6.0 py39hf3d152e_3 conda-forge six 1.15.0 pyh9f0ad1d_0 conda-forge sqlite 3.34.0 h74cdb3f_0 conda-forge tk 8.6.10 h21135ba_1 conda-forge tzdata 2021a he74cb21_0 conda-forge wheel 0.36.2 pyhd3deb0d_0 conda-forge xz 5.2.5 h516909a_1 conda-forge zlib 1.2.11 h516909a_1010 conda-forge
As you see in the above output, all packages are installed from the conda-forge
repository.
If you don't want to create new environment but install packages in the existing active environment, run:
$ conda install --channel conda-forge pandas
This command will install pandas package from the conda-forge
channel in the existing environment.
Let us verify if the conda-forge
channel is added by using nay one of the following methods:
$ conda info
This command displays the details of currently active conda environment, including the channels.
[...] channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch [...]
If you want to show only the channels, use this command:
$ conda config --show channels
Sample output:
channels: - defaults
To show the default channels only, run:
$ conda config --show default_channels
Sample output:
default_channels: - https://repo.anaconda.com/pkgs/main - https://repo.anaconda.com/pkgs/r
As you see in the above outputs, conda-forge
is not added. We've only installed the packages from the conda-forge
channel, but we didn't add it yet.
Now let us go ahead and add or enable conda-forge
channel permanently.
Enable conda-forge channel for conda package manager in Linux
As stated already, we can add or enable conda-forge
channel either from commadline or from Anaconda Navigator graphical user interface. First, we will see the commanline way.
1. Add conda-forge channel from commandline
To enable conda-forge
channel, run the following command from the Terminal:
$ conda config --add channels conda-forge
As stated earlier, conda
installs the packages from the defaults
channel unless you explicitly tell it to install packages from a specific channel.
To install packages always from conda-forge
, set higher priority to conda-forge
channel using command:
$ conda config --set channel_priority strict
Here, the channel_priority strict
option will place conda-forge
channel on top of defaults
channel and ensure that all the dependencies will come from the conda-forge
channel unless they exist only on defaults
.
Check if conda-forge
channel is added using command:
$ conda config --show channels channels: - conda-forge - defaults
Did you notice? conda-forge
is placed on the top of defaults
channel.
Now you can normally install any package on your environment without explicitly mentioning the channel like below:
$ conda install pandas
The package will always be downloaded from the conda-forge
channel.
Just in case, if the package or its dependencies are not available in conda-forge
, they will be downloaded from defaults
channel.
Like I already mentioned, it is recommended to always install packages on a new environment instead of the default base
environment. This way you can avoid package conflicts and maintain a clean base
environment.
Adding channels via command line is not a big deal. However, some of you prefer the graphical way to get things done. The following section explains how to enable conda-forge
channel from Anaconda Navigator GUI.
Launch Anaconda Navigator using command:
$ anaconda-navigator
Click Channels button:
Click Add button:
Enter the conda-forge
channel URL - https://conda.anaconda.org/conda-forge/
. Press ENTER key to update the Channel list.
Finally click Update channels button to enable conda-forge channel.
Resource: