IPython + Pandas中的Matplotlib:找不到ImportError符号:_png_create_info_struct

时间:2013-01-25 22:46:39

标签: python macos matplotlib pandas ipython

我在Python中构建了Matplotlib,当我导入它或它的任何部分时,它工作正常并且图形很好。

然而,我一直在阅读“Python for Data Analysis”,以及Ch.2的IPython名称趋势演练,当我运行以下内容时......

total_births.plot(title='Total births by sex and year')

我明白了......

ImportError: dlopen(/Library/Python/2.7/site-packages/matplotlib/_png.so, 2): Symbol not found: _png_create_info_struct

我在Web上发现的大多数修复都解决了Python中使用Matplotlib的问题,但特别是在IPython中没有。

以下是整个IPython输出:

ImportError                               Traceback (most recent call last)
<ipython-input-27-08d014b1a776> in <module>()
----> 1 total_births.plot(title='Total births by sex and year')

/Library/Python/2.7/site-packages/pandas/tools/plotting.pyc in plot_frame(frame, x, y,     subplots, sharex, sharey, use_index, figsize, grid, legend, rot, ax, style, title, xlim, ylim, logx, logy, xticks, yticks, kind, sort_columns, fontsize, secondary_y, **kwds)
   1453                      logy=logy, sort_columns=sort_columns,
   1454                      secondary_y=secondary_y, **kwds)
-> 1455     plot_obj.generate()
   1456     plot_obj.draw()
   1457     if subplots:

/Library/Python/2.7/site-packages/pandas/tools/plotting.pyc in generate(self)
    732         self._args_adjust()
    733         self._compute_plot_data()
--> 734         self._setup_subplots()
    735         self._make_plot()
    736         self._post_plot_logic()

/Library/Python/2.7/site-packages/pandas/tools/plotting.pyc in _setup_subplots(self)
    781         else:
    782             if self.ax is None:
--> 783                 fig = self.plt.figure(figsize=self.figsize)
    784                 ax = fig.add_subplot(111)
    785                 ax = self._maybe_right_yaxis(ax)

/Library/Python/2.7/site-packages/pandas/lib.so in pandas.lib.cache_readonly.__get__ (pandas/lib.c:27324)()

/Library/Python/2.7/site-packages/pandas/tools/plotting.pyc in plt(self)
    859     @cache_readonly
    860     def plt(self):
--> 861         import matplotlib.pyplot as plt
    862         return plt
    863 

/Library/Python/2.7/site-packages/matplotlib/pyplot.py in <module>()
     24 from matplotlib.cbook import dedent, silent_list, is_string_like, is_numlike
     25 from matplotlib import docstring
---> 26 from matplotlib.figure import Figure, figaspect
     27 from matplotlib.backend_bases import FigureCanvasBase
     28 from matplotlib.image import imread as _imread

/Library/Python/2.7/site-packages/matplotlib/figure.py in <module>()
     30 
     31 from matplotlib import _image
---> 32 from matplotlib.image import FigureImage
     33 
     34 import matplotlib.colorbar as cbar

    /Library/Python/2.7/site-packages/matplotlib/image.py in <module>()
         20 # For clarity, names from _image are given explicitly in this module:
         21 import matplotlib._image as _image
    ---> 22 import matplotlib._png as _png
         23 
         24 # For user convenience, the names from _image are also imported into

ImportError: dlopen(/Library/Python/2.7/site-packages/matplotlib/_png.so, 2): Symbol not found: _png_create_info_struct
  Referenced from: /Library/Python/2.7/site-packages/matplotlib/_png.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/matplotlib/_png.so

1 个答案:

答案 0 :(得分:1)

我通过这个帖子找到了一个解决方案:ipython reads wrong python version

@minrk关于which pythonwhich ipython之间不匹配的观点让我重写了我的/ usr / local / bin / ipython文件的第一行。