Qestion about Package installation source priority : conda default > conda-forge? and enviroment creation automation

Hi there, I have two questions about installing packages. :blush:
Conda recommends trying conda default at first, if packages are not available, then try to search the package on http://anaconda.org, and if still not available, then try the conda-forge channel), otherwise, finally use pip. However, Conda-forge recommends setting Conda-forge as the first channel above the default. It is confusing because packages from the condo-forge channel also appear on http://anaconda.org.
It seems that something is wrong with Conda’s documentation. Which channel priority is better (more reproducible env)?

There are many researchers using pip install directly (in the README file of their repo), however, if you follow the installation steps they provide, there are many dependency conflicts, or C++ packages build issues.
Should we transform the pip requirements.txt file to the conda environment.yml file in order to create an env just with one command without fixing environment setup issues manually and make the deep learning environment more reproducible? Is there any way to automate the process, for instance, writing a script (set channel priority/create .condarc file, search each package in requrements.txt, and separate the packages available into two files?

  1. In environment.yml: as many as possible packages that are available on conda and find the related channels, add pip install requrements.txt at the end
  2. In requrements.txt: only available via pip)
    “conda convert” can be a useful starting point, but it may not completely automate the process of creating a reproducible environment.
1 Like