【问题标题】:Reinstalling numpy on OS X using pip - "can’t be modified or deleted because it’s required by OS X"使用 pip 在 OS X 上重新安装 numpy -“无法修改或删除,因为 OS X 需要它”
【发布时间】:2017-05-29 19:28:45
【问题描述】:

我正在尝试升级 macOS 上的 numpy 库,但 pip 似乎没有足够的权限来删除 numpy.运行 `pip install --upgrade pip 会给我这个回溯:

➜  Desktop sudo -H pip install --upgrade numpy
Collecting numpy
  Using cached numpy-1.11.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Installing collected packages: numpy
  Found existing installation: numpy 1.8.0rc1
    DEPRECATION: Uninstalling a distutils installed project (numpy) 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 numpy-1.8.0rc1:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 778, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 754, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 267, 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-21oX9d-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info'

显然 pip 无法删除 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info。尝试在 finder 中手动删除此文件会出现此错误:

“numpy-1.8.0rc1-py2.7.egg-info”无法修改或删除,因为它是 OS X 要求的。

我该如何解决这个问题? (使用内置 numpy 不是一个选项,因为我需要的包 tensorflow 需要最新版本。

【问题讨论】:

  • 我能想到的几个选项 - 以 root 身份运行 pip 命令;通过homebrew 安装它。将它安装到 virtualenv 中 - 我真的找不到在全球范围内安装它的理由。
  • OS X 保护默认系统 Python 安装,即使是来自根目录的修改。 @yedpodtrzitko 的评论实际上是一个答案。安装homebrew,然后是brew install python,然后是brew install numpy。根据answer 的建议,更新默认使用自制 Python 的路径
  • @void - 非常感谢,这正是我所需要的。

标签: python macos numpy pip


【解决方案1】:

遇到同样的问题

sudo pip install --ignore-installed numpy

【讨论】:

  • 这可能会安装它,但“pip list”仍然显示 Mac 提供的古老 numpy 版本。
【解决方案2】:

对于我在 macOS High Sierra 上的情况,以下操作效果很好:

sudo pip install --ignore-installed numpy

【讨论】:

    猜你喜欢
    • 2012-05-29
    • 1970-01-01
    • 2011-12-28
    • 2017-07-19
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2013-06-20
    • 2013-09-29
    相关资源
    最近更新 更多