2009-09-25 13 views
20

मैंने हिम तेंदुए पर पाइथन के लिए मैटलप्लॉब को संकलित करने की कोशिश कर आधा दिन मारा है। मैंने googles का उपयोग किया है और यह सहायक पृष्ठ पाया (http://blog.hyperjeff.net/?p=160) लेकिन मैं अभी भी संकलन करने के लिए नहीं मिल सकता है। मैं उस पृष्ठ पर अन्य उपयोगकर्ताओं से टिप्पणियां देखता हूं, इसलिए मुझे पता है कि मैं अकेला नहीं हूं।हिम तेंदुए पर पायथन के लिए मैटलप्लिपिब संकलित करें

मैंने पहले ही ज़्लिब, libpng और freetype स्वतंत्र रूप से स्थापित किया है।

मैं शीर्ष पर इस को रोकने के लिए make.osx फ़ाइल संपादित:

PREFIX=/usr/local 

PYVERSION=2.6 
PYTHON=python${PYVERSION} 
ZLIBVERSION=1.2.3 
PNGVERSION=1.2.33 
FREETYPEVERSION=2.3.5 
MACOSX_DEPLOYMENT_TARGET=10.6 

## You shouldn't need to configure past this point 

PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig" 
CFLAGS="-Os -arch x86_64 -arch i386 -I${PREFIX}/include" 
LDFLAGS="-arch x86_64 -arch i386 -L${PREFIX}/lib" 
CFLAGS_DEPS="-arch i386 -arch x86_64 -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX10.6.sdk" 
LDFLAGS_DEPS="-arch i386 -arch x86_64 -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX10.6.sdk" 

मैं तो चलाएँ:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" &&\ 
    export MACOSX_DEPLOYMENT_TARGET=10.6 &&\ 
    export CFLAGS="-Os -arch x86_64 -arch i386 -I/usr/local/include" &&\ 
    export LDFLAGS="-arch x86_64 -arch i386 -L/usr/local/lib" &&\ 
    python2.6 setup.py build 

... snip ... 

gcc-4.2 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -Os -arch x86_64 -arch i386 -I/usr/local/include -pipe -DPY_ARRAYAUNIQUE_SYMBOL=MPL_ARRAY_API -I/Library/Python/2.6/site-packages/numpy/core/include -I. -I/Library/Python/2.6/site-packages/numpy/core/include/freetype2 -I./freetype2 -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c src/ft2font.cpp -o build/temp.macosx-10.6-universal-2.6/src/ft2font.o 
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for C/ObjC but not for C++ 
In file included from src/ft2font.h:13, 
       from src/ft2font.cpp:1: 
/usr/local/include/ft2build.h:56:38: error: freetype/config/ftheader.h: No such file or directory 

... snip ... 

src/ft2font.cpp:98: error: ‘FT_Int’ was not declared in this scope 
/Library/Python/2.6/site-packages/numpy/core/include/numpy/__multiarray_api.h:1174: warning: ‘int _import_array()’ defined but not used 
lipo: can't open input file: /var/tmp//ccDOGx37.out (No such file or directory) 
error: command 'gcc-4.2' failed with exit status 1 
make: *** [mpl_build] Error 1 

मैं:

sudo make -f make.osx mpl_build 

जो मुझे देता है चुक गया।

+0

'make.osx' स्वचालित रूप से freetype/libpng/zlib डाउनलोड करेगा। –

उत्तर

7

आपके त्रुटि संदेश के मुताबिक आप freetype हेडर गायब हैं। क्या आप सिस्टम खोज कार्यक्षमताओं का उपयोग कर उन्हें ढूंढ सकते हैं। मैं प्री-बिल्ट पैकेज का उपयोग करने पर व्याख्यान नहीं लेगा क्योंकि मुझे अपने सिर को खरोंच करना और शुरुआत से संकलन करना पसंद है।

+0

धन्यवाद व्हाटिक। इससे मुझे make.osx मेकफ़ाइल संपादित करने में मदद मिली। – Greg

0

मुझे अभी संकलन करने के लिए मिला है। मैंने make.osx फ़ाइल में CFLAGS के पथ शामिल करने में freetype2 जोड़ा। अब make.osx का शीर्ष है:

PREFIX=/usr/local 

PYVERSION=2.6 
PYTHON=python${PYVERSION} 
ZLIBVERSION=1.2.3 
PNGVERSION=1.2.33 
FREETYPEVERSION=2.3.5 
MACOSX_DEPLOYMENT_TARGET=10.6 

## You shouldn't need to configure past this point 

PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig" 
CFLAGS="-Os -arch x86_64 -arch i386 -I${PREFIX}/include -I${PREFIX}/include/freetype2" 
LDFLAGS="-arch x86_64 -arch i386 -L${PREFIX}/lib" 
CFLAGS_DEPS="-arch i386 -arch x86_64 -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX10.6.sdk" 
LDFLAGS_DEPS="-arch i386 -arch x86_64 -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX10.6.sdk" 

तब मैंने इन आदेशों को चलाया, और यह पूरी तरह से संकलित और स्थापित किया गया।

sudo make -f make.osx mpl_build 
sudo make -f make.osx mpl_install 
+0

ठीक है तो मुझे जवाब मिला - स्पॉट ऑन। – whatnick

+0

आपने निश्चित रूप से किया - बहुत बहुत धन्यवाद! – Greg

-1

आपको वास्तव में matplotlib-users मेलिंग सूची पर यह पूछना चाहिए। यह वास्तविक matplotlib डेवलपर्स द्वारा निगरानी की जाती है, जो StackOverflow (AFAIK) नहीं है।

3

आप निम्न पैच के साथ

$ python setup.py build 

का उपयोग करके निर्माण कर सकते हैं के रूप में कहीं और सुझाव दिया setupext.py को

Index: setupext.py 
=================================================================== 
--- setupext.py (revision 7917) 
+++ setupext.py (working copy) 
@@ -334,6 +334,8 @@ 

    module.include_dirs.extend(incdirs) 
    module.include_dirs.append('.') 
+ module.include_dirs.append('/usr/local/include') 
+ module.include_dirs.append('/usr/local/include/freetype2') 
    module.library_dirs.extend(libdirs) 

def getoutput(s): 
+0

यह मेरे लिए काम किया। – Markus

0

आवेदन किया, macports कई वास्तुकला पर ठीक काम करता है और MacOSX के संस्करणों + अद्यतन की अनुमति देता है और अधिक:

$ port search matplot 
py-matplotlib @0.99.0 (python, graphics, math) 
    matlab-like syntax for creating plots in python 

py-matplotlib-basemap @0.99.4 (python, graphics, math) 
    matplotlib toolkit for plotting data on map projections 

py25-matplotlib @0.99.0 (python, graphics, math) 
    matlab-like syntax for creating plots in python 

py25-matplotlib-basemap @0.99.4 (python, graphics, math) 
    matplotlib toolkit for plotting data on map projections 

py26-matplotlib @0.99.0 (python, graphics, math) 
    matlab-like syntax for creating plots in python 

py26-matplotlib-basemap @0.99.4 (python, graphics, math) 
    matplotlib toolkit for plotting data on map projections 

Found 6 ports. 
$ 

आपके मामले में, बस जारी करें:

$ sudo port install py26-matplotlib 

यह डिफ़ॉल्ट

1

के रूप में macosx बैकएंड (देशी कोको) सुविधाएँ Python.org 2.7.1 के लिए:

मैं निर्देशों का मिश्रण का इस्तेमाल किया। यह मूल रूप से (स्थापित करना) freetype2 v2.4.4 & zlib v1.2.5 OSX के लिए/usr/X11

  1. डाउनलोड किया गया, बनाया गया है और स्थापित में libpng का उपयोग करके काम किया। डीईएस बनाने का उपयोग नहीं किया था।

  2. संशोधित सेटअपक्स्ट।py

    module.include_dirs.extend(incdirs) 
    module.include_dirs.append('.') 
    module.include_dirs.append('/usr/local/include') 
    module.include_dirs.append('/usr/local/include/freetype2') 
    module.include_dirs.append('/usr/X11/include') 
    module.library_dirs.extend(libdirs) 
    module.library_dirs.append('/usr/local/lib') 
    module.library_dirs.append('/usr/X11/lib') 
    
  3. संशोधित make.osx ही/usr/X11 की जानकारी शामिल करने के लिए, PNG संस्करण 1.2.5 है OSX 10.6.6 वर्तमान देशी

    PYVERSION=2.7 
    
    PYTHON=python${PYVERSION} 
    
    ZLIBVERSION=1.2.5 
    
    PNGVERSION=1.2.44 
    
    FREETYPEVERSION=2.4.4 
    
    MACOSX_DEPLOYMENT_TARGET=10.6 
    
    OSX_SDK_VER=10.6 
    
    ARCH_FLAGS="-arch i386-arch x86_64" 
    
    PREFIX=/usr/local 
    
    MACPREFIX=/usr/X11 
    
    PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig" 
    
    CFLAGS="-arch i386 -arch x86_64 -I${PREFIX}/include -I${PREFIX}/include/freetype2 -I${MAXPREFIX}/include -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk" 
    
    LDFLAGS="-arch i386 -arch x86_64 -L${PREFIX}/lib -L/usr/X11/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk" 
    
    FFLAGS="-arch i386 -arch x86_64" 
    
  4. तो मानक

    sudo make -f make.osx mpl_build 
    sudo make -f make.osx mpl_install 
    sudo python setup.py install 
    
  5. क्रिक ... काम करने लगता है। अब छवि & MDP & pylab & 10.6.6

छवि मॉड्यूल (इमेजिंग-1.7.7) ठीक जब तक आप libjpeg स्थापित रूप में काम करता पर 2.7.1 के साथ matplotlib है। मैंने jpegsrc.v8c का उपयोग किया और यह काफी खुश लग रहा था।

6

यह समाधान पर OSX 10.8.3 मेरे लिए काम किया:

ln -s /usr/local/include/freetype2/freetype/ /usr/include/freetype 

(क्रेडिट वास्तव में करने के लिए चला जाता है: http://simpleyuan.blogspot.com/2012/08/matplotlib-error-mac-os-x.html)

+0

यह समाधान ओएसएक्स 10.8.3 पर मेरे लिए काम करता है: 'ln -s/opt/local/include/freetype2/freetype// usr/include/freetype' – scls

+4

होमब्रू के लिए: 'ln -s/usr/local/include/freetype2// usr/शामिल/freetype' – sakra

संबंधित मुद्दे