2015-01-09 59 views
124

安装时PIP和Python我已经碰到了,说:PIP安装:请检查目录的权限和所有者

目录“/用户/帕台农/库/日志/ PI”或它父目录不属于当前用户,并且调试日志已被禁用。请检查该目录的权限和所有者。如果用sudo执行pip,则可能需要-H标志。

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

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

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

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

+0

是您的帐户名称Philip吗? – komaromy 2015-01-09 22:08:08

+0

昨天我刚刚在自己的机器上使用pip时发现了这种情况,那么virtualenv的意思是不会在你期望的地方发生? – 2015-01-09 22:17:58

+0

我安装了Python 3。4在我的机器上,但是当我在终端中运行python时,即使在完成整个安装过程之后它仍然运行2.7。我只提到virtualenv,因为我通常希望在Library/Python/3.4中找到它,但是没有Library/Python/3.4 – 2015-01-09 22:21:30

回答

43

这里的问题是,你以某种方式安装到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 

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

More information about UNIX file permission management

+0

Pip仍会写入错误。我也有类似的警告,我的权限是正确的,OP实际上并没有使用virtualenv,因此全局安装包需要sudo才有意义。 – 2015-01-10 01:08:29

+0

@PadraicCunningham:如果pip提供的错误是您的权限不正确,请显示您的文件权限,以便我们能够弄清楚他们有什么问题。否则,帮助将是在黑暗中的一枪。 – 2015-01-10 01:13:26

+0

另外我建议你打开另一个问题,因为你的问题可能与原作者的不同 – 2015-01-10 01:15:05

109

我也看到了我的Mac上这种改变,当我从运行“点子”到“须藤点子”

添加“-H”以须藤去引起走开我的留言。例如。

须藤-H PIP安装富

'人须藤' 告诉我, '-H' 使sudo来设置$ HOME到目标用户(根在这种情况下)。

因此,看起来pip正在寻找$ HOME/Library/Log,默认情况下sudo没有将HOME设置为〜root。毫不奇怪〜/ Library/Log是你作为一个用户而不是root拥有的。

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

+14

请注意,使用'sudo pip'完全不正确。欲了解更多信息,请参阅这里http://stackoverflow.com/questions/33004708/osx-el-capitan-sudo-pip-install-oserror-errno-1-operation-not-permitted/33004920#33004920 – 2015-11-25 18:38:13

+0

我有相同的问题,但是现在我必须使用“-H”标志进行安装。 – 2016-07-28 13:25:57

38

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

+0

您必须至少提供一项安装要求(请参阅“pip帮助安装”) – Amir 2016-12-20 04:55:37