Search code examples
pythonpipsudo

sudo pip install VS pip install --user


Can't remember where I read this, but either somewhere on here or in the comments of a tutorial I was following, a person said:

Never ever use sudo pip install; you could overwrite important stuff without knowing it. Use pip install --user instead!

I see lots of references to sudo pip install everywhere though, so did this person know what they were talking about and I should avoid it, or... ?


Solution

  • $ sudo pip install 
    

    Installs the package globally in your python installation, i.e. for all users.

    $ pip install --user
    

    Installs to the local user directory, i.e. ~/.local/lib/python -- just you.

    Example:

    $ sudo pip install jupyter
    $ jupyter notebook
    

    Will run jupyter, open a web browser, allow you to work with notebooks.

    $ pip install --user jupyter
    $ jupyter notebook
    

    Will do nothing until your local directory has been added to your PATH.

    There was recently malicious code included in pypi. Never use sudo to install with pip. This is the same as running a virus as root. Either add your local folder to your PATH or use a virtualenv.