This lesson is being piloted (Beta version)
If you teach this lesson, please tell the authors and provide feedback by opening an issue in the source repository

Conda environments for effective and reproducible research

Conda is an open source package and environment management system that runs on Windows, macOS and Linux. Conda installs, runs, and updates packages and their dependencies. Conda easily creates, saves, loads, and switches between environments on your local computer. While Conda was created for Python programs it can package and distribute software for any languages such as R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN. This lesson motivates the use of Conda as a development tool for building and sharing Python project specific software environments that facilitate reproducible (data) science workflows.

Prerequisites

This is an intermediate lesson and assumes familiarity with:

Schedule

Setup Download files required for the lesson
00:00 1. Getting Started with Conda What are the key terms I need to understand such as ‘package’, ‘dependency’ and ‘environment’?
Why should I use a package and environment management system as part of my research workflow?
What is Conda and why should I use it?
00:20 2. Working with Environments What is a Conda environment?
How do I create (delete) an environment?
How do I activate (deactivate) an environment?
How do I install packages into existing environments using Conda?
How do I find out what packages have been installed in an environment?
How do I find out what environments that exist on my machine?
How do I delete an environment that I no longer need?
01:35 3. Using Conda Channels and PyPI (pip) What are Conda channels?
Why should I be explicit about which channels my research project uses?
What should I do if a Python package isn’t available via a Conda channel?
02:05 4. Sharing Environments Why should I share my Conda environment with others?
How do I share my Conda environment with others?
02:50 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.