What is the difference between installing a package using pip vs. apt-get?

I always recommend installing Python package with pip, because some OS package managers do packages customizations, and it can either break or change package's behavior.

If you need to install a package globally:

$ sudo pip install PACKAGE

And it will try to download your package from PyPI or project's links.


You should be aware that what makes it in the package manager undergoes some integration testing, while what is in Pypi is untested.

Pypi is OK for development.

In production, you may go with Pypi, but you will soon learn that you can always rely on what is in the package manager...


Most answers to this question miss one of the advantages using apt-get:

apt-get is pre-compiled, which installs much faster than pip.

To install numpy, matplotlib, pandas, and other scipy-related modules, apt-get only takes seconds; pip can easily consume 10min+.

If you have root access and don't mind a little outdated versions, apt-get is the fast & worry-free way to go.


You probably already know the benefits of apt-get. Automatic update notifications, other apt-installed packages that need those tools know they're installed, etc.

With pip, you know you're getting the latest version at the time you install it, you can install to a non-default version of Python, and you can install to a virtualenv.

If you don't need any of the features pip gives you, and you don't routinely have to install other Python packages which aren't available over APT, use the APT versions.