← Other topics

What is Anaconda for Python?

Video Notes

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:

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:
    • Spyder a code editor or IDE (Integrated Development Environment) that is popular in scientific programming.
    • Jupyter - an open-source interactive web application that allows you to create and share documents that contain live code, equations, visualizations, and narrative text
    • Etc.
  • 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.

Python environment examples including game development, data science, and web development

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.

If this info helped you out you can say thanks and support future content by clicking my Amazon affiliate link: https://amzn.to/3UtgnYk. If you make a purchase on Amazon within 24 hours of clicking the link I may receive a micro-commission and it costs you nothing extra. Any income from these sales goes directly to supporting me in making new videos and guides. Thank you for your support!

← Other topics