在安装pip和python的过程中,我遇到了一个问题:
当前用户不拥有目录“/Users/pathenon/Library/Logs/pi”或其父目录,调试日志已被禁用。请检查该目录的权限和所有者。如果使用sudo执行pip,您可能需要-H标志。
因为我现在必须使用sudo
安装。
我的Mac上已经安装了python和一些库,我正在运行Yosemite。我最近不得不做一个干净的擦拭,然后重新安装操作系统。现在我得到这个提示,我很难想出如何改变它
以前我的命令行是帕台农神庙$,现在是飞利浦MBP:~帕台农神庙$
我是这台计算机的唯一所有者,这是它的唯一帐户。在升级到Python3.4时,这似乎是一个问题,似乎没有什么东西放在正确的位置,virtualenv没有达到我预期的目的,等等。
当我从运行pip
到sudo 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安装--用户