6

So, I have seen What is the difference between pip and conda?. However, all of the answers there appear to be from Anaconda supporters. So, that made me wonder: why is pip still the standard? why hasn't everyone just moved to anaconda?

I understand that anaconda only works with its own python, but is that the only disadvantage?

Community
  • 1
  • 1
Brian Postow
  • 11,709
  • 17
  • 81
  • 125
  • 1
    Note: I tried to ask this at SoftewareRecommendations, and they said it was inappropriate for there. Since the old question was in SO, I figured it was appropriate here, and I think I've explained why the answers on the previous question were insufficient. (Sorry, I've had bad luck with things getting closed recently, so I figured I'd head that off.) – Brian Postow Mar 17 '16 at 18:37
  • 2
    pip pulls from PyPI, whereas Anaconda does not. That means almost any package you've heard of can be installed with "pip install X", but many packages are not available in the Anaconda repository. – Chad Kennedy Mar 17 '16 at 18:39
  • 1
    The answer here sums it all up for you: http://stackoverflow.com/a/21009909/1795121 – jacmoe Mar 17 '16 at 18:42
  • 1
    Jacmoe, again, that is very Anaconda centric. it doesn't explain why pip is still the standard, if Anaconda is so great. – Brian Postow Mar 17 '16 at 18:48
  • Chad, the problem with that is that the pandas library that is causing me the most problems, DOESN'T really install with just pip install pandas. It needs specific scipy variants, or something... But again, if everything that I need is in Anaconda, is there no significant downside? – Brian Postow Mar 17 '16 at 18:49
  • 1
    @ChadKennedy, conversely, packages such as basemap can be installed on conda easily, but are not available on pip, and until recently it was a pain to install numba on pip – Haleemur Ali Mar 17 '16 at 19:50
  • 1
    @BrianPostow Yes the Anaconda distribution is definitely nice in that regards. You don't need to worry about version incompatibilities and most common third-party packages are pre-installed. I don't see a real downside to using Anaconda in your case. – Chad Kennedy Mar 17 '16 at 19:53
  • 1
    If you really need packages from PyPI you can always use pip that is bundled with anaconda distribution.(It installs packages that can be accessed by Python that comes with Anaconda.) Also with pip we can get the latest versions or the version of your choice. With conda the versions are a bit older. But they are guaranteed to work with each other. – Kronos Jun 23 '17 at 08:11
  • @BrianPostow: on which OS did you have problems with Pandas? – serv-inc Jul 25 '17 at 15:03

2 Answers2

6

Based on my limited experience, I would guess that the main advantage of pip over conda is the ability to still install packages that are not available from conda or Anaconda.org.

https://conda.io/docs/using/pkgs.html#install-non-conda-packages - says basically the same.

I have been using conda for a while now, mostly studying Machine Learning and related subjects. I am a happy user 99.99% of the time. But when one faces challenges like building and installing tensorflow with GPU support for Mac that would support his or her rather specific/outdated GPU, one can't really rely on conda.

2

One huge advantage of pip is the built-in ability to install packages system-wide via f.ex.

sudo -H pip install ipython

It actually is smart enough to do this by default if run as the root user, installing to some directory in the global execution path. (/usr/local/bin?)

What can actually be considered an advantage for some things is that pip compiles packages (by default). So some packages like f.ex. which are actually optimized upon installation should not be installed via conda, or you are possibly missing out on this.

Finally, as mentioned, pip is directly linked to Python's package archive, whereas conda assumedly needs to be told when a new package was uploaded via a new configuation.

serv-inc
  • 35,772
  • 9
  • 166
  • 188