首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >pip安装:请检查该目录的权限和所有者

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

Stack Overflow用户
提问于 2015-01-10 06:05:23
回答 5查看 186.3K关注 0票数 156

在安装pip和python时,我遇到一个写着:

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

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

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

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

我是这台计算机的唯一所有者,这是它的唯一帐户。当升级到python3.4时,这似乎是一个问题,似乎没有任何东西放在正确的位置,virtualenv没有达到我期望的效果,等等。

EN

回答 5

Stack Overflow用户

发布于 2015-01-11 03:56:16

当我从运行pip到运行sudo pip时,我也在我的苹果电脑上看到了这一变化。将-H添加到sudo会使消息消失。例如。

代码语言:javascript
复制
sudo -H pip install foo

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

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

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

票数 128
EN

Stack Overflow用户

发布于 2015-01-10 08:15:54

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

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

代码语言:javascript
复制
$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

那么pip应该能够再次写入这些文件。

More information about UNIX file permission management

票数 63
EN

Stack Overflow用户

发布于 2016-10-02 03:30:43

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

票数 61
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27870003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档