Ed Fine
Ed Fine

Reputation: 717

Are environments in conda a wrapper for pyenv?

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

Answers (2)

asmeurer
asmeurer

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

mattexx
mattexx

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

Related Questions