当我使用 sudo pip 安装软件时,我收到消息“该目录......不属于当前用户”

当我使用 sudo pip 安装软件时,我收到消息“该目录......不属于当前用户”

目录“ /home/bijay/.cache/pip/http”或其父目录不属于当前用户,并且缓存已被禁用。请检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的-H标志。

但是软件已经安装好了。我只是想知道上面的错误到底是什么意思。

例如:-

当我尝试安装 pandas 时,它是这样的......

答案1

当您运行时,sudo您的环境会被传递,同时有效用户会切换到 root。您的环境包括您的~/或主目录(环境变量的值HOME)是/home/bijay

pip在下载软件包之前查找 http 缓存。可能出于安全、合理性和隐私方面的考虑,pip 禁用了缓存,以免写入不属于当前用户的缓存目录。它只是告诉你它这样做了。

正如它所暗示的,使用将在执行传递给的命令之前sudo -H设置环境变量,使用 root 的主目录而不是用户的主目录。然后可以无错误地写入缓存。HOMEsudo/root$HOME/root/.cache/pip/http

顺便说一句,您可能不应该pip以 root 身份运行。

答案2

升级 pip

apt pip install --upgrade pip

相关内容