When I use sudo pip to install software I get the message "the directory... is not owned by the current user"
When you run sudo
your environment is passed along while the effective user switches to root. Your environment includes that your ~/
or home directory (the value of the environment variable HOME
) is /home/bijay
.
pip
looks for an http cache before downloading packages. Probably for a combination of security, sanity and privacy reasons pip disables the cache so as not to write to a cache directory not owned by the current user. It's just telling you that it did that.
As it hints, using sudo -H
would set the HOME
environment variable before executing the command passed to sudo
, using root's home directory /root
as $HOME
instead of your user's. The cache could then be written in /root/.cache/pip/http
with no errors.
As a sidenote, you probably shouldn't be running pip
as root anyway.
![Bijay uprety](https://lh5.googleusercontent.com/-wagx_97pacw/AAAAAAAAAAI/AAAAAAAAAVQ/QQj5Y_NuU6Q/photo.jpg?sz=256)
Bijay uprety
Updated on September 18, 2022Comments
-
Bijay uprety almost 2 years
The directory '
/home/bijay/.cache/pip/http
' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's-H
flag.But software get installed. I just want to know what the heck above error means.
For example:-
-
Admin over 6 yearsThe error means exactly what it says.
-
-
Bijay uprety over 6 yearsThanks. It pretty much explains. But why running pip as root is not good. Isn't pip just a package manager to install python software/libraries ?
-
Zanna over 6 years@Bijayuprety see askubuntu.com/questions/802544/…
-
jdwolf over 6 yearsGenerally speaking if you want system-wide python packages use your distributions packages instead.
-
cowlinator over 4 yearsIf you want to install without using root or sudo, simply use the
--no-cache-dir
argument. The only downside is that it may take a little longer and might use slightly more of your network bandwidth. -
jdwolf over 4 years@cowlinator Or you could just ignore the warning because its already disabling the cache. However the warning also tells you what you need to do. If
pip
didn't need root then it'd use the users cache without disabling it. -
guntbert about 3 yearsWhy would that help?