提问者:小点点

pip安装:请检查该目录的权限和所有者


在安装pip和python的过程中,我遇到了一个问题:

当前用户不拥有目录“/Users/pathenon/Library/Logs/pi”或其父目录,调试日志已被禁用。请检查该目录的权限和所有者。如果使用sudo执行pip,您可能需要-H标志。

因为我现在必须使用sudo安装。

我的Mac上已经安装了python和一些库,我正在运行Yosemite。我最近不得不做一个干净的擦拭,然后重新安装操作系统。现在我得到这个提示,我很难想出如何改变它

以前我的命令行是帕台农神庙$,现在是飞利浦MBP:~帕台农神庙$

我是这台计算机的唯一所有者,这是它的唯一帐户。在升级到Python3.4时,这似乎是一个问题,似乎没有什么东西放在正确的位置,virtualenv没有达到我预期的目的,等等。


共3个答案

匿名用户

当我从运行pipsudo pip时,我也在Mac上看到了这种变化。将-H添加到sudo会导致消息对我来说消失。例如。

sudo -H pip install foo

man sudo告诉我-H导致sudo$HOME设置为目标用户(在本例中为根用户)。

因此,pip似乎正在查看$HOME/Library/Log,默认情况下,sudo没有将$HOME设置为/root/。毫不奇怪,~/Library/Log由您作为用户而不是root用户拥有。

我怀疑这是pip最近的一些变化。现在我将使用sudo-H来运行它。

匿名用户

这里的问题是,您以某种方式使用sudo安装到virtualenv中。可能是偶然的。这意味着root用户将重写Python包数据,使所有文件归root所有,而您的普通用户将无法再编写这些文件。通常,virtualenv应该仅由普通UNIX用户使用和拥有。

可以通过将UNIX文件权限包更改为用户来修复此问题。尝试:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

然后,pip应该能够再次写入这些文件。

有关UNIX文件权限管理的更多信息

匿名用户

pip安装--用户