简体   繁体   English

Mac中的pip install matplotlib出错

[英]Error in pip install matplotlib in Mac

When I do 当我做

pip install matplotlib --upgrade --user

I dont get any error but my program fails saying 我没有得到任何错误,但我的程序失败了

Traceback (most recent call last):
  File "forest.py", line 22, in <module>
    matplotlib.style.use('ggplot')
AttributeError: 'module' object has no attribute 'style'

when I try to upgrade matplotlib without --user I get following error 当我尝试在没有--user的情况下升级matplotlib时,我得到以下错误

$ pip install matplotlib --upgrade 
Collecting matplotlib
  Using cached matplotlib-1.5.2-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
Requirement already up-to-date: cycler in /Users/vangapellisanthosh/Library/Python/2.7/lib/python/site-packages (from matplotlib)
Collecting pyparsing!=2.0.0,!=2.0.4,!=2.1.2,>=1.5.6 (from matplotlib)
  Using cached pyparsing-2.1.8-py2.py3-none-any.whl
Collecting pytz (from matplotlib)
  Using cached pytz-2016.6.1-py2.py3-none-any.whl
Collecting numpy>=1.6 (from matplotlib)
  Using cached numpy-1.11.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
Collecting python-dateutil (from matplotlib)
  Using cached python_dateutil-2.5.3-py2.py3-none-any.whl
Collecting six (from cycler->matplotlib)
  Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: pyparsing, pytz, numpy, six, python-dateutil, matplotlib
  Found existing installation: pyparsing 2.0.1
    DEPRECATION: Uninstalling a distutils installed project (pyparsing) 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 pyparsing-2.0.1:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-8.1.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.1.2-py2.7.egg/pip/req/req_set.py", line 736, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg/pip/req/req_install.py", line 742, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip-8.1.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.1.2-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/7j/19zzrqpn5dl6ghw1pms6k2m80000gp/T/pip-FEDiKY-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pyparsing-2.0.1-py2.7.egg-info'

How do i solve it? 我该如何解决?

Try 尝试

sudo pip install matplotlib --upgrade --ignore-installed six

Using pip to install certain packages for OS X El Capitan or greater has spawned this generic problem . 使用pip为OS X安装某些软件包El Capitan或更高版本已经产生了这个通用问题 Hopefully this solution works for you as it has worked for me. 希望这个解决方案适合您,因为它对我有用。

It seems like your first error is because you are searching for style in matplotlib and not matplotlib.pyplot. 看起来你的第一个错误是因为你在matplotlib而不是matplotlib.pyplot中搜索样式。 Normally, it should work anyway but try this. 通常,无论如何它应该工作,但试试这个。

Try changing this: 尝试改变这个:

matplotlib.style.use('ggplot')

By adding this in the beginning of your code: 通过在代码的开头添加:

import matplotlib.pyplot as plt

Then use: 然后使用:

plt.style.use('ggplot')

For the second error, pip tries to uninstall pyparsing but somehow don't have the permission. 对于第二个错误,pip尝试卸载pyparsing但不知何故没有权限。 If you are the administrator try using: 如果您是管理员,请尝试使用:

sudo pip install matplotlib --upgrade

Building on Kendama's answer. 以Kendama的答案为基础。 I had the same issue on macOS (Exception during Uninstalling pyparsing-2.0.1) while installing mitmproxy. 在安装mitmproxy时,我在macOS上遇到了同样的问题(在卸载pyparsing-2.0.1期间出现异常)。 The following code fixed the error for me. 以下代码为我修复了错误。

sudo pip install mitmproxy --upgrade --ignore-installed six

Just wanted to mention that this issue is not related just to matplotlib, but can occur when installing any software. 只是想提一下,这个问题与matplotlib无关,但在安装任何软件时都会发生。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM