Preface
If you’re already familiar with Anaconda and just want to get into the details of how to work with it, jump to one of the following guides:
- Getting started with Anaconda and Python on a Mac
- Getting started with Anaconda and Python on Windows
What is Anaconda?
Anaconda is a program that contains Python as well as a set of open-source libraries and tools designed for scientific programming. While Anaconda is popular in the data science community, it is also useful as a general purpose tool for anyone looking to work with Python.
Anaconda includes:
- Conda - Command line package manager
- Anaconda Navigator - Desktop GUI for launching apps and managing libraries, environments, and channels
- Curated packages geared towards scientific programming, e.g:
- Data analysis: Pandas, NumPy, SciPy, etc.
- Interactive data viz: Matplotlib, Bokeh, plotly, Streamlit, etc.
- Stand-alone programs such as:
- Functionality for managing environments described below...
Environments
In Anaconda, an environment is a self-contained and isolated workspace that allows you to manage and organize your installation of Python and its packages. Environments help avoid conflicts between different projects that may have different version requirements for their dependencies.
Benefits of environments
- Isolation: Environments in Anaconda are isolated from each other. This means that the packages and dependencies installed in one environment do not interfere with those in another environment.
- Package Management: You can use the conda package manager to create, manage, and switch between environments. Conda allows you to install, update, and remove packages, ensuring that the environment remains consistent and reproducible.
- Version Control: Environments allow you to specify and control the versions of Python and other packages for a particular project. This is crucial for ensuring that your code works consistently across different systems and over time.
- Reproducibility: Environments contribute to reproducibility by capturing the specific package versions needed for a project. This ensures that other users or collaborators can recreate the same environment and run the code with the same dependencies.
Alternatives
The advantage of Anaconda is it bundles together various utilities and features you’ll need when working with Python.
That being said, Anaconda is not the only path to working with Python. Here’s what a ”non-Anaconda” setup might look like:
- Instead of managing outside packages with Conda, you could use pip, a popular package installer for Python. You could even choose to use just Conda without the full overhead of Anaconda by installing Miniconda.
- Instead of managing environments with Anaconda’s environment system, you could use a program called virtualenv.
- Any of the outside data-science related packages that come bundled with Anaconda can be installed individually as needed.
- Any of the stand-alone programs that come with Anaconda such as Spyder or Jupyter can also be downloaded individually.
The downside of the above paths is you have to individually set up and install various separate programs, whereas Anaconda provides a nice “all in one” solution.
That being said, if you're a seasoned programmer, you might prefer the “pick and choose” path so you’re installing just the utilities you need without any additional overhead.