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

在安装 pip 和 python 时,我遇到一个问题:

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

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

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

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

我是这台电脑的唯一拥有者,这是它的唯一账户。这似乎是一个问题,当升级到 python 3.4,似乎没有在正确的地方,viralenv 没有去哪里我希望它,等等。

192394 次浏览

这里的问题是,您以某种方式使用 sudo安装到 viralenv 中。可能是意外。这意味着 root用户将重写 Python 包数据,使得 root 用户拥有的所有文件和普通用户不能再写这些文件。通常,viralenv 只能由普通的 UNIX 用户使用和拥有。

您可以通过将 UNIX 文件权限包更改为您的用户来修复这个问题:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

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

有关 UNIX 文件权限管理 的详细信息

当我从运行 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 用户属于您。

我怀疑这是最近的一些变化点。我将运行它与 sudo -H现在左右。

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

基本信息

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

钥匙

  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/

当我看到这个的时候,我明白了 makdirs 是一种写作的行为, 但请求模式 drwxrwxr-x只显示用户根 可以写入请求文件。 如果将油头(whoami)添加到组轮,并修改包 到组轮可以写,然后我就可以写了,问题解决了。

如何将您添加到组轮? + 检测组轮,sudo dscl . -list /groups GroupMembership,你会发现:

wheel                    root

组轮只有一个成员根。 + 添加油头到组轮,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

如果更改 $PATH 变量,也可能导致问题。如果您认为这可能是问题所在,请检查您的 ~/。Bash _ profile 或 ~/。巴希尔