Overview
Questions
What is a virtual environment?
How do virtual environments help manage dependencies?
How do you create and activate a virtual environment?
Objectives
Learn about virtual environments and their purpose in Python projects.
Understand how to create and manage virtual environments.
Get hands-on experience with setting up and using a virtual environment.
In ML for materials science, dependency isolation prevents conflicts between different projects. Conda and Python’s built-in venv are both used to create environments with their own Python version and libraries. Conda is preferred here due to its ability to handle scientific and compiled packages.
A Conda environment is a self-contained directory with a specific Python version and packages. Do not install packages into the base Conda environment — create one per project.
conda create --name MatML python=3.12
conda activate MatML
conda install numpy pandas scikit-learn matplotlib seaborn jupyterlab
pip3 install torch torchvision pymatgen ase matminer fairchem-core fairchem-data-oc fairchem-applications-cattsunami x3dase m3gnet matgl chgnet mp-api
conda env export --no-builds --file MatML.yaml
Recreate the environment elsewhere:
conda env create --file MatML.yaml
conda deactivate
conda env remove --name MatML
venvvenv is built into Python and is lighter weight but requires manual installation of all dependencies with pip.
Linux/MacOS
python3 -m venv MatML
source MatGNN/bin/activate
pip3 install torch torchvision pymatgen ase matminer fairchem-core fairchem-data-oc fairchem-applications-cattsunami x3dase m3gnet matgl chgnet mp-api describe numpy pandas scikit-learn matplotlib seaborn jupyterlab ipython
Windows PowerShell
python -m venv MatML
MatGNN\Scripts\activate
pip3 install torch torchvision pymatgen ase matminer fairchem-core fairchem-data-oc fairchem-applications-cattsunami x3dase m3gnet matgl chgnet mp-api describe numpy pandas scikit-learn matplotlib seaborn jupyterlab ipython
Deactivate with:
deactivate
conda create --name MatML python=3.12
conda activate MatML
conda install numpy pandas scikit-learn matplotlib seaborn jupyterlab
pip3 install torch torchvision pymatgen ase matminer fairchem-core fairchem-data-oc fairchem-applications-cattsunami x3dase m3gnet matgl chgnet mp-api describe
import pymatgen
import matminer
import fairchem.core
import m3gnet
import chgnet
import mp_api
import describe
import ase
print("Libraries loaded successfully")
conda env export --no-builds --file MatML.yaml
conda deactivate
conda env remove --name MatML
conda env create --file MatML.yaml
MatML.yamlname: MatML
channels:
- conda-forge
- defaults
dependencies:
- python=3.12
- numpy
- pandas
- scikit-learn
- matplotlib
- seaborn
- jupyterlab
- pip
- pip3:
- torch==2.3.1
- torchvision
- pymatgen
- ase
- matminer
- fairchem-core
- fairchem-data-oc
- fairchem-applications-cattsunami
- x3dase
- dgl -f https://data.dgl.ai/wheels/torch-2.3/repo.html
- m3gnet
- matgl
- chgnet
- mp-api
- describe
pip3 install torch pymatgen matminer fairchem-core m3gnet matglchgnet mp-api describe numpy pandas scikit-learn matplotlib seaborn jupyterlab ipython
You can create this environment directly with:
conda env create --file MatML.yaml
conda activate MatML
Key Points
Virtual environments isolate dependencies.
Using Conda or venv for creating environments.
Activating and deactivating virtual environments.