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

Phi*_*ews 153 python sudo pip osx-yosemite

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

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

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

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

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

我是这台电脑的唯一所有者,这是唯一的帐户.这似乎是一个问题,当升级到python 3.4,似乎没有什么在正确的地方,virtualenv不会去我想象的地方,等等.

Von*_*Von 124

当我从'pip'运行到'sudo pip'时,我也在Mac上看到了这个变化

将"-H"添加到sudo会导致消息消失.例如

sudo -H pip install foo

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

所以看起来pip正在查看$ HOME/Library/Log和sudo默认情况下不将HOME设置为~root.毫不奇怪〜/ Library/Log是您作为用户而不是root拥有的.

我怀疑这是最近pip的一些变化.我现在用'sudo -H'运行它来解决问题.

  • 请注意,使用`sudo pip`是完全错误的.有关更多信息,请参阅http://stackoverflow.com/questions/33004708/osx-el-capitan-sudo-pip-install-oserror-errno-1-operation-not-permitted/33004920#33004920 (18认同)

Saf*_*wan 59

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


Mik*_*maa 57

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

您可以通过将UNIX文件权限包更改为您的用户来解决此问题.尝试:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip
Run Code Online (Sandbox Code Playgroud)

然后pip应该能够再次写这些文件.

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