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

Bij*_*ety 16 permissions sudo software-installation pip

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

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

例如:-

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

jdw*_*olf 14

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

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

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

作为旁注,您可能pip无论如何都不应该以 root 身份运行。

  • 如果你想在不使用 root 或 sudo 的情况下安装,只需使用 `--no-cache-dir` 参数。唯一的缺点是它可能需要更长的时间,并且可能会使用更多的网络带宽。 (2认同)