2009-10-15 41 views
8

我下载了源代码并解开它。如何安装没有gcc错误的matplotlib?

sudo python setup.py install 

以下是我得到的错误。顺便说一句,Numpy安装。

src/_image.cpp:5:17: error: png.h: No such file or directory 
src/_image.cpp: In member function 'Py::Object Image::write_png(const Py::Tuple&)': 
src/_image.cpp:646: error: 'png_structp' was not declared in this scope 
src/_image.cpp:646: error: expected `;' before 'png_ptr' 
src/_image.cpp:647: error: 'png_infop' was not declared in this scope 
src/_image.cpp:647: error: expected `;' before 'info_ptr' 
src/_image.cpp:648: error: aggregate 'png_color_8_struct sig_bit' has incomplete type and cannot be defined 
src/_image.cpp:649: error: 'png_uint_32' was not declared in this scope 
src/_image.cpp:649: error: expected `;' before 'row' 
src/_image.cpp:652: error: 'png_bytep' was not declared in this scope 
src/_image.cpp:652: error: 'row_pointers' was not declared in this scope 
src/_image.cpp:652: error: expected type-specifier before 'png_bytep' 
src/_image.cpp:652: error: expected `;' before 'png_bytep' 
src/_image.cpp:654: error: 'row' was not declared in this scope 
src/_image.cpp:660: error: type '<type error>' argument given to 'delete', expected pointer 
src/_image.cpp:665: error: 'png_ptr' was not declared in this scope 
src/_image.cpp:665: error: 'PNG_LIBPNG_VER_STRING' was not declared in this scope 
src/_image.cpp:665: error: 'png_create_write_struct' was not declared in this scope 
src/_image.cpp:669: error: type '<type error>' argument given to 'delete', expected pointer 
src/_image.cpp:673: error: 'info_ptr' was not declared in this scope 
src/_image.cpp:673: error: 'png_create_info_struct' was not declared in this scope 
src/_image.cpp:677: error: 'png_destroy_write_struct' was not declared in this scope 
src/_image.cpp:678: error: type '<type error>' argument given to 'delete', expected pointer 
src/_image.cpp:685: error: 'png_destroy_write_struct' was not declared in this scope 
src/_image.cpp:686: error: type '<type error>' argument given to 'delete', expected pointer 
src/_image.cpp:690: error: 'png_init_io' was not declared in this scope 
src/_image.cpp:693: error: 'PNG_COLOR_TYPE_RGB_ALPHA' was not declared in this scope 
src/_image.cpp:693: error: 'PNG_INTERLACE_NONE' was not declared in this scope 
src/_image.cpp:694: error: 'PNG_COMPRESSION_TYPE_BASE' was not declared in this scope 
src/_image.cpp:694: error: 'PNG_FILTER_TYPE_BASE' was not declared in this scope 
src/_image.cpp:694: error: 'png_set_IHDR' was not declared in this scope 
src/_image.cpp:703: error: 'png_set_sBIT' was not declared in this scope 
src/_image.cpp:705: error: 'png_write_info' was not declared in this scope 
src/_image.cpp:706: error: 'png_write_image' was not declared in this scope 
src/_image.cpp:707: error: 'png_write_end' was not declared in this scope 
src/_image.cpp:708: error: 'png_destroy_write_struct' was not declared in this scope 
src/_image.cpp:711: error: type '<type error>' argument given to 'delete', expected pointer 
src/_image.cpp: In member function 'Py::Object _image_module::readpng(const Py::Tuple&)': 
src/_image.cpp:860: error: 'png_byte' was not declared in this scope 
src/_image.cpp:860: error: expected `;' before 'header' 
src/_image.cpp:866: error: 'header' was not declared in this scope 
src/_image.cpp:868: error: 'header' was not declared in this scope 
src/_image.cpp:868: error: 'png_sig_cmp' was not declared in this scope 
src/_image.cpp:873: error: 'png_structp' was not declared in this scope 
src/_image.cpp:873: error: expected `;' before 'png_ptr' 
src/_image.cpp:875: error: 'png_ptr' was not declared in this scope 
src/_image.cpp:878: error: 'png_infop' was not declared in this scope 
src/_image.cpp:878: error: expected `;' before 'info_ptr' 
src/_image.cpp:879: error: 'info_ptr' was not declared in this scope 
src/_image.cpp:882: error: 'png_ptr' was not declared in this scope 
src/_image.cpp:882: error: 'png_jmpbuf' was not declared in this scope 
src/_image.cpp:885: error: 'png_ptr' was not declared in this scope 
src/_image.cpp:885: error: 'png_init_io' was not declared in this scope 
src/_image.cpp:886: error: 'png_set_sig_bytes' was not declared in this scope 
src/_image.cpp:888: error: 'info_ptr' was not declared in this scope 
src/_image.cpp:888: error: 'png_read_info' was not declared in this scope 
src/_image.cpp:890: error: 'png_uint_32' was not declared in this scope 
src/_image.cpp:890: error: expected `;' before 'width' 
src/_image.cpp:891: error: expected `;' before 'height' 
src/_image.cpp:894: error: 'PNG_COLOR_TYPE_GRAY' was not declared in this scope 
src/_image.cpp:895: error: 'PNG_COLOR_TYPE_GRAY_ALPHA' was not declared in this scope 
src/_image.cpp:896: error: 'png_set_gray_to_rgb' was not declared in this scope 
src/_image.cpp:897: error: 'PNG_COLOR_TYPE_PALETTE' was not declared in this scope 
src/_image.cpp:898: error: 'png_set_palette_to_rgb' was not declared in this scope 
src/_image.cpp:902: error: 'png_set_strip_16' was not declared in this scope 
src/_image.cpp:905: error: 'png_set_interlace_handling' was not declared in this scope 
src/_image.cpp:906: error: 'png_read_update_info' was not declared in this scope 
src/_image.cpp:908: error: 'PNG_COLOR_TYPE_RGBA' was not declared in this scope 
src/_image.cpp:909: error: 'PNG_COLOR_TYPE_RGB' was not declared in this scope 
src/_image.cpp:915: error: 'png_jmpbuf' was not declared in this scope 
src/_image.cpp:918: error: 'png_bytep' was not declared in this scope 
src/_image.cpp:918: error: 'row_pointers' was not declared in this scope 
src/_image.cpp:918: error: expected type-specifier before 'png_bytep' 
src/_image.cpp:918: error: expected `;' before 'png_bytep' 
src/_image.cpp:919: error: expected `;' before 'row' 
src/_image.cpp:921: error: 'row' was not declared in this scope 
src/_image.cpp:921: error: 'height' was not declared in this scope 
src/_image.cpp:922: error: expected type-specifier before 'png_byte' 
src/_image.cpp:922: error: expected `;' before 'png_byte' 
src/_image.cpp:924: error: 'png_read_image' was not declared in this scope 
src/_image.cpp:929: error: 'height' was not declared in this scope 
src/_image.cpp:930: error: 'width' was not declared in this scope 
src/_image.cpp:936: error: expected `;' before 'y' 
src/_image.cpp:936: error: 'y' was not declared in this scope 
src/_image.cpp:938: error: expected `;' before 'x' 
src/_image.cpp:938: error: 'x' was not declared in this scope 
src/_image.cpp:940: error: 'ptr' was not declared in this scope 
src/_image.cpp:951: error: 'png_read_end' was not declared in this scope 
src/_image.cpp:952: error: 'png_infopp_NULL' was not declared in this scope 
src/_image.cpp:952: error: 'png_destroy_read_struct' was not declared in this scope 
src/_image.cpp:956: error: type '<type error>' argument given to 'delete', expected pointer 
error: command 'gcc' failed with exit status 1 
+0

你在Linux或Windows? – 2009-10-15 05:47:13

回答

20

这些特殊的错误源于缺乏libpng的开发包。

如果您使用Debian/Ubuntu,请先尝试apt-get install libpng-dev

9

如果你是基于易试试

$ sudo apt-get build-dep matplotlib

+0

+1 b/c build-dep真棒 – gtrak 2010-10-07 17:43:52

+1

注意:如果您使用pip安装numpy,则可能会安装另一个并排版本,因为某些发行版将其列为依赖项。这可能会导致混乱。 。 。 – meawoppl 2013-04-08 03:12:28

4

你不需要从源代码编译: sudo apt-get install python-matplotlib

最简单的出路。