Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用简单打印脚本时出现属性错误_Python_Python 2.7_Matplotlib - Fatal编程技术网

Python 使用简单打印脚本时出现属性错误

Python 使用简单打印脚本时出现属性错误,python,python-2.7,matplotlib,Python,Python 2.7,Matplotlib,我试图用Python绘制一个简单的函数。我使用以下代码: # lineplot.py import numpy as np import pylab as pl # Make an array of x values x = [1, 2, 3, 4, 5] # Make an array of y values for each x value y = [1, 4, 9, 16, 25] # use pylab to plot x and y pl.plot(x, y) # show the p

我试图用Python绘制一个简单的函数。我使用以下代码:

# lineplot.py
import numpy as np
import pylab as pl
# Make an array of x values
x = [1, 2, 3, 4, 5]
# Make an array of y values for each x value
y = [1, 4, 9, 16, 25]
# use pylab to plot x and y
pl.plot(x, y)
# show the plot on the screen
pl.show()
但是,我希望看到输出的最后一行出现以下错误:

AttributeError: 'NoneType' object has no attribute 'get_default_size'
有人知道我哪里出错了吗

错误的完整回溯:

>>> pl.show()
Traceback (most recent call last):
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_gtk.py", line 394,\    in expose_event
    self._render_figure(self._pixmap, w, h)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_gtkagg.py", line 75, in _render_figure
    FigureCanvasAgg.draw(self)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 394, in draw
    self.figure.draw(self.renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/figure.py", line 798, in draw
    func(*args)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axes.py", line 1946, in draw
    a.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axis.py", line 1017, in draw
    tick.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axis.py", line 234, in draw
    self.label1.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/text.py", line 526, in draw
    bbox, info = self._get_layout(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/text.py", line 300, in _get_layout
    ismath=False)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 180, in get_text_width_height_descent
    font = self._get_agg_font(prop)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 226, in _get_agg_font
    size = prop.get_size_in_points()
    File "/usr/lib64/python2.7/site-packages/matplotlib/font_manager.py", line 798, in get_size_in_points
    default_size = fontManager.get_default_size()
    AttributeError: 'NoneType' object has no attribute 'get_default_size'
    Traceback (most recent call last):
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_gtk.py", line 394, in expose_event
    self._render_figure(self._pixmap, w, h)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_gtkagg.py", line 75, in _render_figure
    FigureCanvasAgg.draw(self)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 394, in draw
    self.figure.draw(self.renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/figure.py", line 798, in draw
    func(*args)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axes.py", line 1946, in draw
    a.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axis.py", line 1017, in draw
    tick.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axis.py", line 234, in draw
    self.label1.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/text.py", line 526, in draw
    bbox, info = self._get_layout(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/text.py", line 300, in _get_layout
    ismath=False)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 180, in get_text_width_height_descent
    font = self._get_agg_font(prop)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 226, in _get_agg_font
    size = prop.get_size_in_points()
    File "/usr/lib64/python2.7/site-packages/matplotlib/font_manager.py", line 798, in get_size_in_points
    default_size = fontManager.get_default_size()
    AttributeError: 'NoneType' object has no attribute 'get_default_size'
    Traceback (most recent call last):
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_gtk.py", line 394, in expose_event
    self._render_figure(self._pixmap, w, h)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_gtkagg.py", line 75, in _render_figure
    FigureCanvasAgg.draw(self)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 394, in draw
    self.figure.draw(self.renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/figure.py", line 798, in draw
    func(*args)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axes.py", line 1946, in draw
    a.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axis.py", line 1017, in draw
    tick.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/axis.py", line 234, in draw
    self.label1.draw(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
    File "/usr/lib64/python2.7/site-packages/matplotlib/text.py", line 526, in draw
    bbox, info = self._get_layout(renderer)
    File "/usr/lib64/python2.7/site-packages/matplotlib/text.py", line 300, in _get_layout
    ismath=False)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 180, in get_text_width_height_descent
    font = self._get_agg_font(prop)
    File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 226, in _get_agg_font
    size = prop.get_size_in_points()
    File "/usr/lib64/python2.7/site-packages/matplotlib/font_manager.py", line 798, in get_size_in_points
    default_size = fontManager.get_default_size()
    AttributeError: 'NoneType' object has no attribute 'get_default_size'

问题是OP使用的
matplotlib
版本(1.0.1)。升级它解决了问题(如聊天中的讨论所述)

这就是我们解决问题的方法(它应该在Linux上工作):

  • 从中下载最新的
    matplotlib
    tar文件
  • 解压缩tar.gz归档文件
  • 将cd放入matplotlib目录
  • python setup.py build
    
    如果它无法抱怨某些头文件(例如
    png.h
    ),请从系统存储库安装相关的
    -devel
    软件包。当然需要
    python-devel
    libpng12-devel

  • python setup.py install --user
    
    它将在
    $HOME/.local/lib/pythonX.X/site软件包中安装matplotlib。此目录在系统范围内的任何目录之前加载到python路径中。此外,系统范围内的安装也不会出现混乱的风险


  • 您使用的python和matplotlib的版本是什么?这里的代码运行正常,因此可能存在其他问题。您是否可以尝试直接使用matplotlib而不是通过pylab?i、 e.
    导入matplotlib.pyplot作为pl
    而不是
    导入pylab作为pl
    ?@M4rtini我会说这是我的后端,或者我用来在其中绘图的任何设备。python的版本是2.7。Matplotlib是1.0版。1@HannesOvrén-当我直接使用matplotlib时,仍然会遇到相同的错误。您使用的是什么后端?您应该从
    python-c'import matplotlib获取它;打印(matplotlib.backends.backend)