Python 3.x python 3.2.3中的Matplotlib pylab savefig运行时错误
我试图测试matplotlib是否正确安装在python3中。我将遵循以下基本教程: 这个问题类似于,但遗憾的是没有明确报告最终解决方案,这是一个不同的操作系统 这方面的操作系统是MacOSX10.6.8。在Python3.2中运行脚本不起作用,但在Python2.7中运行脚本起作用。不幸的是,我需要3.2 注释掉savefig行后,它工作正常Python 3.x python 3.2.3中的Matplotlib pylab savefig运行时错误,python-3.x,osx-snow-leopard,matplotlib,Python 3.x,Osx Snow Leopard,Matplotlib,我试图测试matplotlib是否正确安装在python3中。我将遵循以下基本教程: 这个问题类似于,但遗憾的是没有明确报告最终解决方案,这是一个不同的操作系统 这方面的操作系统是MacOSX10.6.8。在Python3.2中运行脚本不起作用,但在Python2.7中运行脚本起作用。不幸的是,我需要3.2 注释掉savefig行后,它工作正常 """ Example: simple line plot. Show how to make and save a simple line plot
"""
Example: simple line plot.
Show how to make and save a simple line plot with labels, title and grid
"""
import numpy
import pylab
t = numpy.arange(0.0, 1.0+0.01, 0.01)
s = numpy.cos(2*2*numpy.pi*t)
pylab.plot(t, s)
pylab.xlabel('time (s)')
pylab.ylabel('voltage (mV)')
pylab.title('About as simple as it gets, folks')
pylab.grid(True)
pylab.savefig('/Users/USERNAME/Documents/simple_plot.png', format='png')
pylab.show()
无论是否显式设置了路径,上面的代码都返回相同的错误。除上述内容外,我还尝试了以下内容:
pylab.savefig('simple_plot.png', format='png')
pylab.savefig('simple_plot')
我试着像另一个问题所说的那样明确地设置路径(如上面较长的示例所示),但这导致了以下错误。注意:mplex.py是脚本的名称
libpng warning: Application was compiled with png.h from libpng-1.2.44
libpng warning: Application is running with png.c from libpng-1.4.11
libpng warning: Incompatible libpng version in application and library
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "mplex.py", line 16, in <module>
pylab.savefig('/Users/USERNAME/Documents/simple_plot.png', format='png')
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/matplotlib/pyplot.py", line 474, in savefig
return fig.savefig(*args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/matplotlib/figure.py", line 1225, in savefig
self.canvas.print_figure(*args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/matplotlib/backend_bases.py", line 2075, in print_figure
**kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/matplotlib/backend_bases.py", line 1846, in print_png
return agg.print_png(*args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/matplotlib/backends/backend_agg.py", line 497, in print_png
filename_or_obj, self.figure.dpi)
RuntimeError: Could not create write struct
libpng警告:应用程序是用libpng-1.2.44中的png.h编译的
libpng警告:应用程序正在使用libpng-1.4.11中的png.c运行
libpng警告:应用程序和库中的libpng版本不兼容
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“mplex.py”,第16行,在
savefig('/Users/USERNAME/Documents/simple_plot.png',format='png')
savefig中的文件“/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site packages/matplotlib/pyplot.py”,第474行
返回图savefig(*args,**kwargs)
savefig中的文件“/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site packages/matplotlib/figure.py”,第1225行
self.canvas.print_图(*args,**kwargs)
文件“/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site packages/matplotlib/backend_base.py”,第2075行,如图所示
**kwargs)
文件“/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site packages/matplotlib/backend_bases.py”,第1846行,印刷版
返回聚合打印(png)(*args,**kwargs)
文件“/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site packages/matplotlib/backends/backend_agg.py”,第497行,印刷版
文件名_或_obj,self.figure.dpi)
运行时错误:无法创建写入结构
想法?除了我在savefig行中尝试的方法之外,还有其他方法可以显式地将目标设置为其他位置吗?我不确定您使用的是什么包管理器,我使用的是Python 2.7(不是3.2.3),但我使用的是Fink,并且有一个类似的问题(具有不同的libpng版本号) 在iPython——pylab,我看到了:
In [3]: savefig('foo.png')
libpng warning: Application is running with png.c from libpng-1.4.11
libpng warning: Incompatible libpng version in application and library
libpng warning: Application was compiled with png.h from libpng-1.5.11
检查我的Fink安装的libpng时,我看到:
$ fink list libpng
Information about 6268 packages read in 0 seconds.
i libpng14 1.4.11-1 PNG image format handling library
i libpng14-shlibs 1.4.11-1 Shared libraries for libpng14 package
libpng15 1.5.10-1 PNG image format handling library
libpng15-32bit 1.5.10-1 PNG library (32-bit)
libpng15-32bit-shli 1.5.10-1 Shared libraries for libpng15 package
i libpng15-shlibs 1.5.10-1 Shared libraries for libpng15 package
libpng3 1:1.2.49-1 PNG image format handling library
libpng3-shlibs 1:1.2.49-1 Shared libraries for libpng3 package
i system-pkgconfig-li 1.5.11-1 [virtual pkgconfig package representing libpng]
i system-pkgconfig-li 1.5.11-1 [virtual pkgconfig package representing libpng15]
运行“fink安装libpng15”后,我的libpng包版本如下所示:
$ fink list libpng
Information about 6268 packages read in 1 seconds.
libpng14 1.4.11-1 PNG image format handling library
i libpng14-shlibs 1.4.11-1 Shared libraries for libpng14 package
i libpng15 1.5.10-1 PNG image format handling library
libpng15-32bit 1.5.10-1 PNG library (32-bit)
libpng15-32bit-shli 1.5.10-1 Shared libraries for libpng15 package
i libpng15-shlibs 1.5.10-1 Shared libraries for libpng15 package
libpng3 1:1.2.49-1 PNG image format handling library
libpng3-shlibs 1:1.2.49-1 Shared libraries for libpng3 package
i system-pkgconfig-li 1.5.11-1 [virtual pkgconfig package representing libpng]
i system-pkgconfig-li 1.5.11-1 [virtual pkgconfig package representing libpng15]
$ pip install matplotlib
Downloading/unpacking matplotlib
Downloading matplotlib-1.2.0.tar.gz (36.9Mb): 36.9Mb downloaded
Running setup.py egg_info for package matplotlib
basedirlist is: ['/usr/local/', '/usr', '/usr/X11', '/opt/local']
============================================================================
BUILDING MATPLOTLIB
matplotlib: 1.2.0
python: 2.7.3 (default, Jul 27 2012, 16:40:57) [GCC 4.2.1
Compatible Apple Clang 3.1
(tags/Apple/clang-318.0.61)]
platform: darwin
REQUIRED DEPENDENCIES
numpy: 1.6.2
freetype2: 15.0.9
OPTIONAL BACKEND DEPENDENCIES
libpng: 1.5.10
Tkinter: Tkinter: 81008, Tk: 8.5, Tcl: 8.5
Gtk+: no
* Building for Gtk+ requires pygtk; you must be able
* to "import gtk" in your build/install environment
Mac OS X native: yes
Qt: no
Qt4: no
PySide: no
Cairo: no
OPTIONAL DATE/TIMEZONE DEPENDENCIES
dateutil: 1.5
pytz: 2012b
OPTIONAL USETEX DEPENDENCIES
dvipng: no
ghostscript: 9.05
latex: no
如您所见,libpng14已不再安装,libpng15已安装
接下来,“pip卸载matplotlib”和“pip安装matplotlib”生成如下matplotlib生成摘要:
$ fink list libpng
Information about 6268 packages read in 1 seconds.
libpng14 1.4.11-1 PNG image format handling library
i libpng14-shlibs 1.4.11-1 Shared libraries for libpng14 package
i libpng15 1.5.10-1 PNG image format handling library
libpng15-32bit 1.5.10-1 PNG library (32-bit)
libpng15-32bit-shli 1.5.10-1 Shared libraries for libpng15 package
i libpng15-shlibs 1.5.10-1 Shared libraries for libpng15 package
libpng3 1:1.2.49-1 PNG image format handling library
libpng3-shlibs 1:1.2.49-1 Shared libraries for libpng3 package
i system-pkgconfig-li 1.5.11-1 [virtual pkgconfig package representing libpng]
i system-pkgconfig-li 1.5.11-1 [virtual pkgconfig package representing libpng15]
$ pip install matplotlib
Downloading/unpacking matplotlib
Downloading matplotlib-1.2.0.tar.gz (36.9Mb): 36.9Mb downloaded
Running setup.py egg_info for package matplotlib
basedirlist is: ['/usr/local/', '/usr', '/usr/X11', '/opt/local']
============================================================================
BUILDING MATPLOTLIB
matplotlib: 1.2.0
python: 2.7.3 (default, Jul 27 2012, 16:40:57) [GCC 4.2.1
Compatible Apple Clang 3.1
(tags/Apple/clang-318.0.61)]
platform: darwin
REQUIRED DEPENDENCIES
numpy: 1.6.2
freetype2: 15.0.9
OPTIONAL BACKEND DEPENDENCIES
libpng: 1.5.10
Tkinter: Tkinter: 81008, Tk: 8.5, Tcl: 8.5
Gtk+: no
* Building for Gtk+ requires pygtk; you must be able
* to "import gtk" in your build/install environment
Mac OS X native: yes
Qt: no
Qt4: no
PySide: no
Cairo: no
OPTIONAL DATE/TIMEZONE DEPENDENCIES
dateutil: 1.5
pytz: 2012b
OPTIONAL USETEX DEPENDENCIES
dvipng: no
ghostscript: 9.05
latex: no
您可以看到,构建现在将采用libpng 1.5.10。以前,它选择1.4.11进行构建。避免使用标准控制台,双击
yourcode.py
或yourcode.pyw
文件不会出现错误。您必须重新链接库,因为libpng与您的路径不匹配。我不知道你必须链接的库在哪里,因为我很懒,而且我使用linuxI,因为我对python是新手——假设我找到了这些库,我将如何重新链接它们?我真的不知道。很抱歉如果我这样做了,那么我会把它作为一个答案贴出来,但我不使用mac电脑。我不知道图书馆在哪里。我意识到软件包管理很难。你是如何安装Python3.2的?还有matplotlib?最重要的是,是你自己编译的吗?如果没有,你从哪里得到的?似乎matplotlib安装需要的libpng版本比您的旧得多。忽略问题并不能解决问题。