Mac OS X pip 安装package时问题

来源:互联网 发布:子贡曰君子一言以为知 编辑:程序博客网 时间:2024/05/22 00:24

作者使用pip安装openstack client时,遇到如下问题,这些问题在安装其他package时也可能遇到:

1. Permission denied: '/Library/Python/2.7/site-packages/pbr

需要sudo安装,且sudo -H, eg. sudo -H pip install xx

2. download package后,自动卸载six时出错

Found existing installation: six 1.4.1

    DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.

    Uninstalling six-1.4.1:

Exception:

Traceback (most recent call last):

  File "/Library/Python/2.7/site-packages/pip-8.0.2-py2.7.egg/pip/basecommand.py", line 209, in main

    status = self.run(options, args)

  File "/Library/Python/2.7/site-packages/pip-8.0.2-py2.7.egg/pip/commands/install.py", line 317, in run

    prefix=options.prefix_path,

  File "/Library/Python/2.7/site-packages/pip-8.0.2-py2.7.egg/pip/req/req_set.py", line 725, in install

    requirement.uninstall(auto_confirm=True)

  File "/Library/Python/2.7/site-packages/pip-8.0.2-py2.7.egg/pip/req/req_install.py", line 752, in uninstall

    paths_to_remove.remove(auto_confirm)

  File "/Library/Python/2.7/site-packages/pip-8.0.2-py2.7.egg/pip/req/req_uninstall.py", line 115, in remove

    renames(path, new_path)

  File "/Library/Python/2.7/site-packages/pip-8.0.2-py2.7.egg/pip/utils/__init__.py", line 266, in renames

    shutil.move(old, new)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move

    copy2(src, real_dst)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2

    copystat(src, dst)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat

    os.chflags(dst, st.st_flags)

OSError: [Errno 1] Operation not permitted: '/tmp/pip-E_Jrbs-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'


MAC OS X EI Capitan 自带six 的1.4.1, 当卸载时没有权限,System Integrity Protection 不允许包括root在内的用户修改改目录。

所以在命令中加入

--upgrade --ignore-installed six


3. 最终运行命令:

sudo -H pip install xxx  --upgrade --ignore-installed six

eg.




PS: 此问题发生在使用MAC自带python情况下,安装目录默认在系统目录。

使用系统自带python 开发可能后期会遇到各种问题,解决起来很麻烦。

建议开发者自己安装python,就不会遇到上述问题。

0 0
原创粉丝点击