pythonpipanacondavirtualenvpyenv

What is the difference between pyenv, virtualenv, and Anaconda?


I am a Ruby programmer trying to learn Python. I am pretty familiar with pyenv since it is like a copy and paste from RBEnv. Pyenv helps in allowing to have more than one version of Python in a system and also to isolate the Python instance without touching sensitive parts of system.

I suppose every Python installation comes with a pip package. What I still don't understand is, there are many good Python libraries out there that suggest to use this virtualenv and Anaconda. I can even find a virtualenv plugin for pyenv.

Now I am getting confused with the purpose of these two, pyenv and virtualenv. Worse, inside pyenv, there is a virtualenv plugin.


Solution

  • It's worth mentioning pip here as well, as conda and pip have similarities and differences that are relevant to this topic.

    pip: the Python Package Manager.

    pyenv: Python Version Manager

    virtualenv: Python Environment Manager.

    Anaconda: Package Manager + Python Version Manager + Environment Manager + Additional Scientific Libraries.

    See also: