Coder Perfect

What is the difference between pip and conda?

Problem

I’m aware that pip is a python package manager. However, I noticed on IPython’s website that conda is used to install IPython.

Is it possible to install IPython using pip? Why should I use conda as another python package manager when I already have pip?

I’m not sure what the difference is between pip and conda.

Asked by lazywei

Solution #1

The following is a quote from the Conda blog:

So Conda is a packaging tool and installer that aims to do more than pip: it can manage both library dependencies outside of Python packages and Python programs themselves. Conda, like virtualenv, produces a virtual environment.

As a result, Conda might be compared to Buildout, another program that can handle Python and non-Python installation activities.

Pip and Conda cannot be used interchangeably because Conda introduces a new packaging format; pip cannot install the Conda package format. You can use both tools at the same time (by installing pip with conda install pip), but they don’t work together.

Anaconda has created a new page on Understanding Conda and Pip after I wrote this answer, which echoes this as well:

and further on

Answered by Martijn Pieters

Solution #2

Disclaimer: This response reflects the state of affairs a decade ago, when pip did not allow binary packages. Conda was designed with the goal of making it easier to generate and distribute binary packages, particularly data science libraries with C extensions. For context, pip only got widespread support for portable binary packages with wheels (pip 1.4 in 2013) and the manylinux1 specification after the release of pip 1.4. (pip 8.1 in March 2016). For further information, see the more current answer.

Here’s a quick rundown of what’s going on:

In both cases:

Conda’s first two bullet points are essentially what set it apart from pip for many packages. Because pip installs from source, if you are unable to build the source code, it can be a hassle to install items using it (this is especially true on Windows, but it can even be true on Linux if the packages have some difficult C or FORTRAN library dependencies). Conda installs from binaries, which means that someone else (for example, Continuum) has already done the hard work of assembling the package, making installation a breeze.

If you want to create your own packages, there are significant changes as well. Pip, for example, is based on setuptools, whereas Conda has its own format, which has some benefits (like being static, and again, Python agnostic).

Answered by asmeurer

Solution #3

The other responses cover the details well, but I’d want to highlight a few high-level points.

Pip is a Python package manager that makes it easy to install, upgrade, and uninstall Python items. It’s also compatible with Python virtual environments.

conda is a package manager for any software (installation, upgrade and uninstallation). It also works with virtual system environments.

The goal of nda is to make package management easier for users throughout their whole software stack, which may or may not include one or more Python versions. This can include low-level libraries like linear algebra, compilers like mingw on Windows, editors, version control systems like Hg and Git, and anything else that needs to be distributed and managed.

Pip allows you to switch between and manage numerous Python environments for version management.

Conda allows you to switch between and manage several general-purpose environments in which multiple other things, such as C-libraries, compilers, test suites, database engines, and so on, might have different version numbers.

Conda is not specifically designed for Windows, but it is by far the best option currently available for installing and managing sophisticated scientific programs that require compilation.

When I think of how much time I’ve wasted trying to compile many of these packages on Windows with pip, or debugging failed pip install sessions when compilation was required, I want to cry.

Finally, Continuum Analytics hosts (free) binstar.org (now named anaconda.org), which allows normal package developers to design their own bespoke (built!) software stacks that their package consumers can install using conda.

Answered by Caleb Hattingh

Solution #4

To add to the confusion, you may also utilize pip within your conda environment, which supports the general vs. python-specific management comments made before.

conda install -n testenv pip
source activate testenv
pip <pip command>

You may also add pip to the default packages of any environment so that it is available at all times, eliminating the need to use the preceding snippet.

Answered by vijay venkatesh

Solution #5

Conda’s quote on the Continuum website’s Data Science article:

conda install pip
pip install gensim

Answered by CheTesta

Post is based on https://stackoverflow.com/questions/20994716/what-is-the-difference-between-pip-and-conda