Anaconda is the most popular Python Data Science distribution and at the heart of Anaconda, we have Conda, the cross platform package and virtual environment manager. In this talk we will cover a bit of history of the packaging problem, the why and the how to use it, together with new tools!
Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python or any other package, you do not need to change to a different environment manager, because conda is also a virtual environment manager. Unlike the traditional tools used in the Python ecosystem, such as pip, virtualenv and others, Conda's virtual environments work at the system level, and not only at the Python level (site-packages!), as illustrated in the following figure:
The ecosystem that has developed around Conda has generated an explosion of packages maintained and created by different organizations , including Conda Forge developing packages as an open source community, Bioconda, a community focused on packages used in bioinformatics and companies such as Intel, and IBM among others, for specialized versions of packages optimized for use with GPUs and special purpose CPUs.
This has allowed Python to become the high level language used by default in projects of Data Science, Machine Learning and Deep Learning and increasingly on other branches of the world of scientific computing.
Conda continues to evolve and adapt to the needs of different communities and in this process new complementary tools have been created that facilitate reproducibility in different software projects, whether applied in data science, in academic projects, or in development and traditional software engineering.
The ecosystem tool responsible for building the packages, conda-build continues to evolve and new tools have emerged including:
- constructor: A tool to create custom conda package installers, similar to how the Anaconda distribution works (single file installer)
- conda-pack: To pack conda environments to be redistributed.
Table of Contents
A. First part - Theory (~ 15 minutes)
- Introduction (~ 3 minutes)
- The packaging problem (in Python, Compilation/Installation) (~ 5 minutes)
- How does Conda work? (~ 3 minutes)
- What is a Conda package? (~ 2 minutes)
- What is a Conda environment? (~ 2 minutes)
B. Second part - Practice (~ 12 minutes)
- How can I install Conda (Anaconda / Miniconda)? (~ 3 minutes)
- package installation (~ 3 minutes)
- Handling additional channels (~ 3 minutes)
- Conda environment management (~ 3 minutes)
C. Third part - Tools and closing remarks (~ 15 minutes)
- How to create a Conda package? (~ 2 minutes)
- New complementary tools (Constructor, conda-pack) (~ 2 minutes)
- Why use Conda? (~ 2 minutes)
- Conda & Docker (~ 2 minutes)
- The future of Conda and the ecosystem (~ 3 minutes)
- I want the future now! (Conda Canary) (~ 2 minutes)
- Additional resources / DataCamp (~ 2 minutes)