Reputation: 717
Are conda's envs a wrapper around pyenv, a similar version or are they a distinct implementation? They seem identical, but I do not know for sure. Are they interchangeable?
Upvotes: 2
Views: 684
Reputation: 91480
Python virtualenvs (or pyvenvs) are very Python specific. The create an environment that pretends to be a distinct installation of Python, while reusing some data from the base Python. Only Python packages can be installed into a virtualenv, because that's really the only thing that makes sense.
Conda environments are not Python specific. Any kind of package can be a conda package (Python packages, C libraries, R packages, Python itself, ...), and any conda package can be installed into a conda environment. Each conda environment is essentially a completely separate installation of every file from every package (including all of Python itself). This is done efficiently using hard links.
Upvotes: 2
Reputation: 6606
From the conda blog post:
Under the hood, we have created a concept of environments which are conceptually similar to virtualenvs, but which use filesystem-level hard links to create entirely self-contained Python runtime layouts. By using the ‘conda’ command line tool, users can easily switch between environments, create environments, and install different versions of libraries and modules into them.
They are similar, but not interchangeable.
Upvotes: 3