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

当安装pip和python时,我遇到了一个说:

目录“/ Users / Parthenon / Library / Logs / pi”或其父目录不属于当前用户,并且debugging日志已被禁用。 请检查该目录的权限和所有者。 如果用sudo执行pip,你可能需要-H标志。

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

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

在我的命令行之前, Parthenon$现在是Philips-MBP:~ Parthenon$

我是这台电脑的唯一拥有者,这是唯一的帐户。 这似乎是一个问题,当升级到Python 3.4,似乎没有在正确的位置,virtualenv不会去我所期望的地方,等等。

当我从“pip”运行到“sudo pip”时,我也在Mac上看到了这一变化,

向sudo添加“-H”会导致邮件消失。 例如

sudo -H pip安装foo

'man sudo'告诉我'-H'会导致sudo将$ HOME设置为目标用户(在这种情况下为root)。

所以看起来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文件权限pipe理的更多信息

pip install --user <package name> (不需要sudo)为我工作一个非常类似的问题。