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


155

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

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

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

我的Mac上已经安装了python和一些库,我正在运行Yosemite。最近,我不得不进行彻底擦拭,然后重新安装操作系统。现在,我收到此提示,并且在弄清楚如何更改它时遇到了麻烦

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

我是这台计算机的唯一所有者,这是计算机上的唯一帐户。升级到python 3.4时,这似乎是个问题,似乎什么都没在正确的地方,virtualenv不会到达我期望的位置,等等。


您的帐户名称是Philip吗?
komaromy

我刚刚注意到昨天在我自己的计算机上使用pip时发生了这种情况,virtualenv的含义是什么?
Padraic Cunningham 2015年

我在机器上安装了Python 3.4,但是即使在整个安装过程中,在终端中运行python时,Python仍然运行2.7。我只提到virtualenv是因为我通常希望在Library / Python / 3.4中找到它,但是没有Library / Python / 3.4
Phil Andrews

您需要使用python3或python3.4之类的东西来使用python3解释器,要重新打开的项目只是一个设置,ubuntu具有相同的选项。
Padraic Cunningham 2015年

@PadraicCunningham您是否遇到相同的点子问题?您最近升级到优胜美地了吗?
Phil Andrews

Answers:


127

从运行pip到Windows时,我在Mac上也看到了这种变化sudo pip。添加-H到sudo会使该消息对我消失。例如

sudo -H pip install foo

man sudo告诉我-H原因sudo设置$HOME为目标用户(在这种情况下为root)。

因此,似乎pip正在调查,$HOME/Library/Log并且sudo默认情况下未将其设置$HOME/root/。毫不奇怪~/Library/Log,您是用户而不是root。

我怀疑这是最近的点差变化。我现在将其运行sudo -H以解决该问题。


18
请注意,使用sudo pip完全不正确。欲了解更多信息,请参阅这里,stackoverflow.com/questions/33004708/...
米克Ohtamaa

我遇到了同样的问题,但是现在我必须使用“ -H”标志进行安装。
玛拉基·巴扎尔

62

这里的问题是,您以某种方式将其安装到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应该能够再次写入这些文件。

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


Pip仍然写有错误。我也有类似的警告,并且我的权限是正确的,OP实际上并未使用virtualenv,因此在全局安装软件包需要sudo才有意义。
Padraic Cunningham 2015年

1
@PadraicCunningham:如果pip提示您的权限不正确,请显示您的文件权限,以便我们找出它们的问题。否则,帮助将是一片黑暗。
Mikko Ohtamaa 2015年

我也建议您再提出一个问题,因为您的问题可能与原始作者的问题有所不同
Mikko Ohtamaa 2015年

使用我自己的用户名,我收到一个错误:输入:sudo chown -R USERNAME / Users / USERNAME / Library / Logs / pip输出:chown:/ Users / USERNAME / Library / Logs / pip:没有这样的文件或目录
user2755660

61

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


您必须至少给出一个安装要求(请参阅“ pip帮助安装”)
Amir

0

基本信息

  • 系统:mac os 18.0.0
  • 当前用户:yutou

钥匙

  1. 将当前帐户添加到车轮组
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. 将python封装模式修改为775。
chmod -R 775 ${this_is_your_python_package_path}

整个东西

  • 当python3编译良好时,信息就像问题所言。
  • 我尝试使用pip3 install requests并得到:
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 
'/usr/local/python3/lib/python3.6/site-packages/requests'
  • 所以我cd /usr/local/python3/lib/python3.6/site-packages,然后ls -al得到:
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

当我看到此消息时,我了解到,makedirs是写操作,但是drwxrwxr-x只有用户root才能显示的请求模式才能写入请求文件。如果将yutou(whoami)添加到组合轮,然后将包修改为组合轮可以写,那么我可以写,并且问题解决了。

如何在组轮中添加yutou?+检测车轮sudo dscl . -list /groups GroupMembership,,您会发现:

wheel                    root

小组轮只有一个成员根。+将yutou添加到分组轮,sudo dscl . -append /Groups/wheel wheel yutou。+检查sudo dscl . -list /groups GroupMembership

wheel                    root yutou

修改python包模式

chmod -R 775 /usr/local/python3/lib/python3.6

0

如果您更改了$ PATH变量,也可能会导致问题。如果您认为可能是问题所在,请检查〜/ .bash_profile或〜/ .bashrc

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.