What is the purpose of anaconda environments

What is the difference between the PyCharm virtual environment and the Anaconda environment?

I have to make it clear that this is just a collection. The real environment manager is. Here is . It contains only the parts necessary to manage the environment instead of a complete collection.

is not just a simple Python package manager, but a system-wide package manager. It will help you install the package without any pain. A classic example is the installation of under Windows. Without it, it's really difficult as it requires a certain C compiler that is hard to come by. With you can install with just one command. Compiler problem and C dependencies are solved automatically.

So when you create an environment in Pycharm, you will be asked which environment you want to create:, or. I usually choose because this env is tied to the current project and can create a lock file.

In that case, I think you can understand it by now: there is no such thing as an env called "Created by PyCharm" or "Anaconda". There are only envs named "Created by Virtualenv, Conda, or Pipenv". And Pycharm only uses and packages one of them.

So what is the difference between and (is essentially one with sophisticated)? The difference arises from their different purposes.

is usually for "Python users". You use Python as a tool for other jobs like web crawling, data mining, and image processing. They don't know much about Python (since they don't need to know) so be as automatic as possible. Your tasks can be anywhere on your computer, so the environments you create are in user-wide directories. And sometimes they need other versions of Python. This can be done in, but not in.

usually stands for "Python developer". You use Python to build applications or packages. The environments created by are usually located in the directory of the current project. This allows you to create an environment for each application and easily manage dependencies.

To conclude:


  1. In addition to managing Python packages, you can also manage different Python versions and system-wide dependencies.
  2. Envs are located in user-wide directories.
  3. Less envs.


  1. Manage Python packages. The main purpose is to segment dependencies for each application.
  2. Envs are usually located in project-wide directories. (Although env created in user-related directories by default, many people think project directories should be the default.)
  3. Much more environment (a new environment for each application)

For me, I use both. I use to manage different Python versions and use to manage dependencies for my applications.