<p>In my field (science) Anaconda is probably the most common Python distribution in use. conda is the package manager (just to be clear of the distinction).</p>

<p>It is difficult to find fault in conda when compared with pip+virtualenv.</p>

<p>The one point that I would make is that the Anaconda distribution is meant to be installed per user. If you have a Python environment that is shared across users there is no way of doing the equivalent of <code>pip install --user</code> with conda (but read on for a surprising solution...). Nor users can create conda environments.</p>

<p>So, if you are considering a single user installation go ahead and try Anaconda. It is worth a try</p>

<p>Note that you can use pip with Anaconda... they are not incompatible. In fact that can be quite useful in a shared installation.</p>

<p>I have setup a shared-user conda installation where users can install user-space packages with... <code>pip install --user</code>.</p>

<p>In a shared installation I do not see how users can create their own conda environments (conda has environments). And I bet conda+virtualenv would be a mess.</p>

<p>Note that conda is not Python tied: First you can have a conda installation with both Python 2 and 3 - and conda manages environments very well. But you can also have conda install Perl, R. In fact that is quite common. Our Perl interpreter is provided by Anaconda ;)</p>

<p>Also I suspect conda is probably stronger in Linux and Mac OSes. Windows is less well supported. For other operating systems, there are probably no packages (or they will be limited).</p>

CC BY-SA 3.0
2017-11-27T03:47:34.617Z
2017-11-27T03:47:34.617Z
Tiago Antao
<p>We are currently using <code>pip</code>+<code>virtualenv</code> and install all our Python dependencies during the application build step on the CI. This requires compiling some of the packages, which contain C modules, which takes time and requires the build servers to have required system-level "development libraries" installed.</p>

<p>From what I understand, <a href="https://www.anaconda.com/" rel="nofollow noreferrer">Anaconda</a> can install <em>pre-built packages</em> allowing to skip the complication step altogether making the builds faster and not needing to have certain development packages.</p>

<p>Has anyone gone through <code>pip</code>+<code>virtualenv</code> to <code>conda</code> transition? What could be the downsides and potential problems of switching to <code>conda</code> for building and installing Python dependencies? </p>

CC BY-SA 4.0
2019-11-27T06:09:16.390Z
Python normally installs pre-built binary packages (known as 'wheels') - if you are finding it is always compiling packages that indicates a problem in your setup.  Anaconda looks nice but it is a [big download](https://repo.anaconda.com/archive/) compared to installing just the required Python packages with `pip` and `virtualenv`.  Installing system-level development libraries (e.g. `build-essential` on Ubuntu) is a one-time requirement and normally very easy with single apt/yum command.
RichVel
<deployment><python><builds><virtualenv>
Using Anaconda instead of pip+virtualenv
alecxe
# Using Anaconda instead of pip+virtualenv

(Asked by: username_0 on 2017-11-26)

We are currently using `pip`+`virtualenv` and install all our Python dependencies during the application build step on the CI. This requires compiling some of the packages, which contain C modules, which takes time and requires the build servers to have required system-level "development libraries" installed.

From what I understand, [Anaconda](https://www.anaconda.com/) can install *pre-built packages* allowing to skip the complication step altogether making the builds faster and not needing to have certain development packages.

Has anyone gone through `pip`+`virtualenv` to `conda` transition? What could be the downsides and potential problems of switching to `conda` for building and installing Python dependencies?

**Tags:** deployment, python, builds, virtualenv

> **Comments:**
> **username_1**: Python normally installs pre-built binary packages (known as 'wheels') - if you are finding it is always compiling packages that indicates a problem in your setup.  Anaconda looks nice but it is a [big download](https://repo.anaconda.com/archive/) compared to installing just the required Python packages with `pip` and `virtualenv`.  Installing system-level development libraries (e.g. `build-essential` on Ubuntu) is a one-time requirement and normally very easy with single apt/yum command.  

---

## 1 answers

### Answer by username_2 on 2017-11-27. Score: 3 | Accepted answer

In my field (science) Anaconda is probably the most common Python distribution in use. conda is the package manager (just to be clear of the distinction).

It is difficult to find fault in conda when compared with pip+virtualenv.

The one point that I would make is that the Anaconda distribution is meant to be installed per user. If you have a Python environment that is shared across users there is no way of doing the equivalent of `pip install --user` with conda (but read on for a surprising solution...). Nor users can create conda environments.

So, if you are considering a single user installation go ahead and try Anaconda. It is worth a try

Note that you can use pip with Anaconda... they are not incompatible. In fact that can be quite useful in a shared installation.

I have setup a shared-user conda installation where users can install user-space packages with... `pip install --user`.

In a shared installation I do not see how users can create their own conda environments (conda has environments). And I bet conda+virtualenv would be a mess.

Note that conda is not Python tied: First you can have a conda installation with both Python 2 and 3 - and conda manages environments very well. But you can also have conda install Perl, R. In fact that is quite common. Our Perl interpreter is provided by Anaconda ;)

Also I suspect conda is probably stronger in Linux and Mac OSes. Windows is less well supported. For other operating systems, there are probably no packages (or they will be limited).


---

