20

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:-

 When I tried to install pandas, it goes like this..

Zanna
  • 72,312

2 Answers2

15

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.

Zanna
  • 72,312
jdwolf
  • 1,086
-4

upgrade pip

apt pip install --upgrade pip