# Managing conda environments

### What is an environment?

An environment is a directory containing installed packages. Having separate environments allows us to compartmentalize projects and manage package dependencies.

### Packages & libraries for this class

* [Numpy](https://numpy.org/doc/)
* [Matplotlib](https://matplotlib.org)
* [FEniCS](https://hs764.gitbook.io/cee-5735/fenics/docker)&#x20;
* [Tensorflow/Keras](https://hs764.gitbook.io/cee-5735/machine-learning-libraries/tensorflow-and-keras)
* [Pytorch](https://hs764.gitbook.io/cee-5735/machine-learning-libraries/pytorch)
* [Scikit-learn](https://hs764.gitbook.io/cee-5735/machine-learning-libraries/scikit-learn)

### Managing environments

There are several ways to use conda to manage environments. The simplest is to use the GUI (Anaconda Navigator) that comes with your Anaconda installation. If you are more comfortable with command lines, you can directly use terminal, which is a lot faster.

{% content-ref url="managing-conda-environments/using-navigator" %}
[using-navigator](https://hs764.gitbook.io/cee-5735/anaconda/managing-conda-environments/using-navigator)
{% endcontent-ref %}

{% content-ref url="managing-conda-environments/using-terminal" %}
[using-terminal](https://hs764.gitbook.io/cee-5735/anaconda/managing-conda-environments/using-terminal)
{% endcontent-ref %}
