【发布时间】:2017-09-23 04:43:55
【问题描述】:
尝试使用 pip 安装 virtualenv 之后
$ pip install virtualenv
我收到权限被拒绝错误
IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/virtualenv.py'
所以我用sudo来安装virtualenv
$ sudo pip install virtualenv
但随后出现了警告:
目录'/Users/petertao/Library/Caches/pip/http'或其父目录 目录不属于当前用户且缓存已被 禁用。请检查该目录的权限和所有者。如果 用 sudo 执行 pip,你可能需要 sudo 的 -H 标志。
目录'/Users/petertao/Library/Caches/pip'或其父目录 目录不属于当前用户并且缓存轮子已经 禁用。检查该目录的权限和所有者。如果 用 sudo 执行 pip,你可能需要 sudo 的 -H 标志。
sudo 的 -H 标志有什么作用?
【问题讨论】:
-
可以通过搜索
sudo找到此内容,并看到带有-H的 sudo manual 页面声明“将 HOME 环境变量设置为由目标用户的密码数据库条目指定的主目录。” -
感谢您的回复,如果这对每个人来说都是一个微不足道的问题,我深表歉意。我刚刚开始使用 python、pip 和终端。我仍然想了解的是如何将 HOME 环境变量设置为主目录修复这些警告。
-
虽然这个确切的问题微不足道,但unstated 问题“为什么
pip在以超级用户身份运行时抱怨非超级用户权限和所有权?”非常有趣。正如user3141593 的well-authored answer 解释的那样,pip抱怨是因为在非超级用户主目录中创建超级用户拥有的子目录是个坏主意。幸运的是,这个问题保持开放的时间足够长,可以收到有用的回复。 -
这些自命不凡的态度是怎么回事?
-
@JohnRPerry:这里也一样。我发现手册页条目完全没有帮助,并在谷歌搜索后在这里结束。值得庆幸的是,user3141593 提供的答案提供了更多见解。
标签: python terminal pip virtualenv sudo