OSError: [Errno 1] Operation not permitted:

时间:2017-11-12 22:32:21

标签: python pandas numpy pip

I am facing some serious resistance with pandas and specifically numpy. When I try to run my current python program, I receive the following message:

ImportError: this version of pandas is incompatible with numpy < 1.9.0
your numpy version is 1.8.0rc1.
Please upgrade numpy to >= 1.9.0 to use this pandas version

I tried to upgrade numpy with:

pip install --upgrade --force-reinstall numpy

But then I receive the following error:

OSError: [Errno 1] Operation not permitted:
'/var/folders/jh/xdhjqn1x3f32tt0s0yqyh0dm0000gn/T/pip-mqbUP3-
uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info'

Based off of what I have seen and read online, I really am not positive what the issue is.

1 个答案:

答案 0 :(得分:0)

我假设您使用的是macOS(否则,--user标志,或与sudo一起运行,应解决此问题)。

问题可能是您尝试升级macOS用于其内部操作的相同Python。 Mac担心无知用户会删除Python并破坏他们的操作系统稳定性,因此,他们将/usr/bin/python置于&#34; wheel&#34;您将无法触摸的目录(即使使用sudo)。

要确认这是问题所在,请尝试以下方法:

  1. 打开终端并输入which Python。您可能会得到/usr/bin/python
  2. 之类的内容
  3. 键入ls -l /usr/bin/python,使用步骤1中的路径。输出看起来像-rwxr-xr-x 1 root wheel 66880 Sep 21 00:35 /usr/bin/python
  4. 看看它是怎么说的&#34; wheel&#34;? Wheel是一个超级保护的群体,即使使用sudo也无法触摸。

    要解决这个问题,可以选择在其他地方安装新的Python副本。就个人而言,我讨厌拥有同一软件的多个副本,所以我强迫它会像这样强制升级:

    1. 以恢复模式重新启动计算机
    2. 找到终端并输入csrutil disable
    3. 正常重启,然后使用pip2升级numpy `install --user --upgrade numpy
    4. 重复步骤a和b,这次改变&#34;禁用&#34;到&#34;启用&#34;
    5. 注意:&#34; csrutil disable&#34;是一个严重的业务,可能会破坏您的机器,我只会在绝对必要时使用它并尽快重新启用它。但是AFAIK是在滚轮目录中升级Python包的唯一方法。