Mac下pip install “Permission Denied”解决办法

Mac安装python package,常用以下几种方式:
- pip
- easy install
- brew
- virtualev
- …

Mac在El Capitan(10.10) 开了 SIP (System Integrity Protection),默认下系统启用SIP系统完整性保护机制,无论是对于硬盘还是运行时的进程限制对系统目录的写操作。

以下是碰到的问题:
使用pip install * 遇到OSError: [Errno 1] Operation not permitted…,sudo偶尔起作用,但更多的时候仍然不能work。

解决办法(来自各大论坛):
- pyenv
- brew install Python
- pip install xxx –user
- 关闭SIP

方案简述:

pip install xxx –user

Mac中自带python的package目录在/Library/Python/2.7/site-packages/,如果直接用pip install则默认是在此目录中,也即系统目录。
而–user的安装目录在/Users/Ussopo/Library/Python/2.7/lib/python/site-packages/,不触及SIP,因此install success。[只是不知道在Terminal中调用的时候会不会出问题]


后记:使用上述方式果然出了问题,虽然可以正常安装,但在使用的时候却没有办法正常调用,即便修改path也不成功,导致virtualenv一度无法安装,现在直接使用virtualenv来做所有操作。


关闭SIP

转载http://blog.csdn.net/iloveyin/article/details/51074388

  1. 重启电脑,按住Command+R(直到出现苹果标志)进入Recovery Mode(恢复模式),左上角菜单里找到实用工具终端;
  2. 输入csrutil disable回车重启Mac即可,如果想重新启动SIP机制重复上述步骤改用csrutil enable即可。

pyenv

应该类似virtualenv,暂未使用

brew

暂未使用

感悟

遵从网友建议,可能需要先学一下基本的 unix 环境知识,否则别人告诉你“前面加 sudo ”就好了,你以为解决了,以后还会一直被其他问题坑。

你可能感兴趣的:(mac-python)