conda
is a package management system. It allows us to create a virtual environment and reduces the risk of dependency hell! miniforge
is a community-led system with the same interface with conda
. While conda
is the canonical version, my personal recommendation is miniforge
as it is substantially faster.
Use conda
pacakge management system: conda
is a convenient package management software that can install both python non-python programs. See here for the installation. Alternatively, you can also use virtualenv.
Create the virtual environment: Create a Python virtual environment for each project to prevent dependency issues. You can create a virtual environment by
conda create -n <any environment name you like> python=<version you like>
and enter the environment by
conda activate <any environment name you like>
Record your python package essentials: It is often a good idea to create a list of essential python packages for your projects. Here is mine.
mamba create -n <project_name> -c rapidsai -c conda-forge -c nvidia rapids=23.10 python=3.9 cuda-version=11.8
mamba activate <project_name>
mamba install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia -y
mamba install -y -c bioconda -c conda-forge snakemake -y
mamba install -c conda-forge graph-tool scikit-learn numpy numba scipy pandas polars networkx seaborn matplotlib gensim ipykernel tqdm black faiss-gpu==1.7.3 -y
install GPUtil nvitop