===== conda environment file to install different packages from different channels ==== ==== Background ==== yfinance library is the easiest and fastest way to download historical stock prices. Asof 2023-05-20, it is not available in the defaults channel. But it is available in the conda-forge channel. ==== Task ==== The goal here is to pull the yfinance package from conda-forge but everything else from the defaults channel. ==== Solution ==== % cat env_test_yfinance.yml | stuff.py name: test_yfinance channels: - defaults dependencies: - python=3.11 - conda-forge::yfinance where stuff.py is a python script to strip out the comments. It can be downloaded from https://github.com/KamarajuKusumanchi/rutils/blob/master/python3/stuff.py Create the environment % conda env create -f ./env_test_yfinance.yml ==== Evidence ==== yfinance is downloaded from conda-forge. % conda list -n test_yfinance | grep conda-forge multitasking 0.0.9 pyhd8ed1ab_0 conda-forge yfinance 0.2.18 pyhd8ed1ab_0 conda-forge python is downloaded from the defaults channel % conda list -n test_yfinance | grep "python" python 3.11.3 h7a1cb2a_0 python-dateutil 2.8.2 pyhd3eb1b0_0 ==== See also ==== * The above environment file can be downloaded from https://github.com/KamarajuKusumanchi/rutils/blob/master/python3/envs/env_test_yfinance.yml * I got the idea from https://stackoverflow.com/questions/58555389/set-the-channel-priority-in-conda-environment-yaml -> https://stackoverflow.com/a/65983247/6305733 * The official documentation I could find on this feature is https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-file-manually \\