What is Anaconda?

Overview

Anaconda is Python virtual environment, meaning it enables developers to work on a separate Python environment without struggling with package conflicts.

Downloads

To install Ananconda (or Miniconda) for your platform (windows, macos or linux) and python version (3.7, 3.8 …), click repository and download appropriate Ananconda version.

Advantages

1. All-in-one Python packages

Developers don’t have to install useful (or sometimes essential) packages while typing ‘pip install …’. Anaconda includes some top ranked python packages, such as pandas and numpy, in itself. All you need is just install Anaconda and run python. The depednecies between packages in Anaconda are consistent, and it makes developers focus on development without struggling with package conflicts.

2. Individual workspaces

Developers don’t have to complain Python package conflicts. For example, when ALPHA developer wants to upgrade the version of a package, it may break consistency with other packages. BETA developer may complain that after ALPHA developer upgraded the version, BETA developer is not able to run one’s python application because of conflicts. Anaconda enables each developer to have one’s own individual workspace: in other words, virtual environment.

$ conda create --name myenv                    // create my Python virtual environment
$ conda create --name myenv --clone other_env  // create my env based on other_env
$ conda env list                               // See lists of Python virtual environment
$ conda activate myenv                         // Activate a virtual environment
$ conda deactivate                             // Deactivate a virtual environment

When a developer creates conda environment, it creates a new directory under {conda base directory}/env/your_env. Below here, there exists ‘python’ and ‘pip’, meaning when a user installs some packages with pip after activating conda env, the packages will be installed under {your_env}/… directory, not base directory.

Use case

Offline envrionment

When I was working in a company, developement servers were not able to connect the external Internet because of high level security. To solve this problem, I had to download each package in a desktop where Internet was accessible and send the files with FTP. In the offline servers, I had to ‘pip install xxx.whl’ or ‘python setup.py install xxx.tar.gz’.

Conflict issues

When I used Python environment alone, there was no package conflict isseus. However, when team members developed on the Python environment I set up, they were struggling with package conflicts. To solve this issue, each member had to set up their own Python environment and install packages by themselves. This process prevented each member from focusing on developement.

Anaconda was a good solution

Anaconda was a good solution for the problems above. First, when I installed Anaconda, I didn’t have to install individual packages by myself. Many packages were already included in Anaconda, and dependencies between packages were consistent. Second, I could create conda environment for each memeber to avoid package conflict. Each member worked on one’s own Python environment and install packages when one needed. This process improved Python development environment in our team.