【发布时间】: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 中 - 我真的找不到在全球范围内安装它的理由。 -
@void - 非常感谢,这正是我所需要的。