【问题标题】:When install opencv-python in mac, OSError: [Errno 1] Operation not permittedmac安装opencv-python时,OSError: [Errno 1] Operation not allowed
【发布时间】:2017-12-23 13:31:15
【问题描述】:

在我的 Mac 上安装 opencv-python 时,我收到一条错误消息:

OSError: [Errno 1] 不允许操作

$ pip install opencv-python

Collecting opencv-python
  Using cached opencv_python-3.2.0.7-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
Collecting numpy>=1.11.1 (from opencv-python)
  Using cached numpy-1.13.1-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, opencv-python
  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-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 778, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 754, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/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: '/var/folders/dd/70hgtbs50hl5sr13h93gzzm80000gn/T/pip-BDWfhx-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info'**

当我尝试使用 sudo 时:

OSError:[Errno 1] 不允许操作:'/tmp/pip-JhNitO-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8。 0rc1-py2.7.egg-info'

我试图卸载numpy
但是还是出现权限错误:

OSError:[Errno 1] 不允许操作:'/var/folders/dd/70hgtbs50hl5sr13h93gzzm80000gn/T/pip-yKfQhH-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/ lib/python/numpy-1.8.0rc1-py2.7.egg-info'

使用 sudo:

OSError:[Errno 1] 不允许操作:'/tmp/pip-sIVZu9-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8。 0rc1-py2.7.egg-info' 目录 '/Users/jack/Library/Caches/pip/http' 或其父目录不属于当前用户,并且缓存已被禁用。请检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。

最后,我尝试通过pip uninstall python卸载python,
但是有:

OSError:[Errno 1] 不允许操作:'/var/folders/dd/70hgtbs50hl5sr13h93gzzm80000gn/T/pip-7ByYw9-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/lib/ python2.7/lib-dynload/Python-2.7.10-py2.7.egg-info'

sudo

OSError: [Errno 1] Operation not allowed: '/tmp/pip-1UeP4t-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/ Python-2.7.10-py2.7.egg-info'
目录 '/Users/jack/Library/Caches/pip/http' 或其父目录不属于当前用户,并且缓存已被禁用。请检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。

所以..我也递归删除了目录:

sudo rm -rf /tmp/pip-1UeP4t-uninstall/

但那些目录会立即重现。

【问题讨论】:

    标签: python python-2.7 opencv numpy


    【解决方案1】:

    尝试这样做pip install --user opencv-python。这应该有助于将setup.py 传递给用户。你不需要virtualenv

    【讨论】:

      【解决方案2】:

      sudo -H pip install --ignore-installed opencv-python

      这对我有用

      【讨论】:

        【解决方案3】:

        使用 sudo -H 标志和/或使用 ignore-installed 标志:sudo -H pip install --ignore-installed opencv-python

        【讨论】:

        • 不过,这对我没有帮助。因为,mac os 阻止了太多要安装的目录。所以。我最终决定使用 virtualenv 来处理每个 python 项目的包。
        • 用easy_install试试吧
        猜你喜欢
        • 2017-01-28
        • 2014-07-18
        • 2018-05-29
        • 2016-01-05
        • 2022-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多