Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do I have to type `sudo` before every pip install?

Tags:

python

macos

pip

When installing packages, logged as my username, I always get permission denied unless I do:

sudo pip install.

How can I make it so this is not necessary? Or is this supposed to be like that?

like image 349
tscizzle Avatar asked Feb 12 '23 20:02

tscizzle


1 Answers

Either, I would use virtualenv, as mentioned in comments to the question, or, leverage python's PYTHON_USERBASE to install modules only for your user:

In your .bashrc add:

export PYTHON_USERBASE=~/python_userbase

then download your package, extract it, go inside the resulting dir, and run:

python setup.py install --user

or simply use:

pip install <package> --user

They'll all end up in ~/python_userbase/lib/pythonXXX/site-packages and not damage your system's site-packages

Reference:

pep-0370

The last thing, this time, Unix related, you could modify /etc/sudoers and grant your user the rights to execute pip as root. But I would highly discourage you from doing this.

like image 156
DevLounge Avatar answered Feb 14 '23 10:02

DevLounge