Skompilować Matplotlib dla Pythona na Snow Leopard
Zabiłam pół dnia próbując skompilować matplotlib dla Pythona na Snow Leopardzie. Skorzystałem z googli i znalazłem tę pomocną Stronę ( http://blog.hyperjeff.net/?p=160 ) ale nadal nie mogę go skompilować. Widzę komentarze innych użytkowników na tej stronie, więc wiem, że nie jestem sam.
Zainstalowałem już Zlib, libpng i freetype niezależnie.
Edytowałem markę.plik osx zawierający to na górze: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"
Potem biegnę:
sudo make -f make.osx mpl_build
Co daje ja:
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
Zgubiłem się. 7 answers
Zgodnie z Komunikatem o błędzie brakuje nagłówków freetype. Czy można je zlokalizować za pomocą funkcji wyszukiwania systemowego. Nie będę wykład na temat korzystania z pre-built pakietu, ponieważ uwielbiam drapanie się po głowie i kompilacji od początku, jak również.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-25 13:49:12
To rozwiązanie działało u mnie na OSX 10.8.3:
ln -s /usr/local/include/freetype2/freetype/ /usr/include/freetype
(kredyt naprawdę idzie do: http://simpleyuan.blogspot.com/2012/08/matplotlib-error-mac-os-x.html )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-17 20:51:33
Możesz również zbudować używając
$ python setup.py build
Z następującym plastrem nałożonym na 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):
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-03 09:41:05
Dla Python.org 2.7.1:
Użyłem kombinacji instrukcji. W zasadzie działa poprzez użycie libpng w /usr / X11Pobrany, zbudowany i zainstalowany (make install) freetype2 v2.4.4 & Zlib v1. 2. 5. Nie używałem make deps.
-
Zmodyfikowany setupext.py mieć
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')
-
Zmodyfikowana Marka.osx zawiera te same informacje /usr / X11, png w wersji 1.2.5 to OSX 10.6.6 current native
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"
-
Wtedy standard
sudo make -f make.osx mpl_build sudo make -f make.osx mpl_install sudo python setup.py install
-
Cholera... wygląda na to, że działa. Teraz masz Image & MDP & pylab & matplotlib z 2.7.1 na 10.6.6
Image module (Imaging-1.7.7) działa poprawnie tak długo, jak długo instalujesz libjpeg. Użyłem jpegsrc.v8c
i wydawało się wystarczająco szczęśliwy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-24 23:54:36
Muszę to skompilować. Dodałem freetype2 w ścieżce include dla CFLAGS w make.plik osx. Teraz szczyt marki.osx to:
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"
Potem uruchomiłem te polecenia, a to skompilowane i zainstalowane idealnie.
sudo make -f make.osx mpl_build
sudo make -f make.osx mpl_install
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-25 13:51:05
Jak sugerowano w innych miejscach, macports działa dobrze na wielu architekturach, a wersje MacOsX + umożliwiają aktualizacje i nie tylko:
$ 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.
$
W Twoim przypadku wystarczy wydać:
$ sudo port install py26-matplotlib
Posiada domyślnie backend macosx (natywny cocoa)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-24 11:56:02
Powinieneś o to zapytać na liście dyskusyjnej matplotlib-users. Jest monitorowany przez prawdziwych programistów matplotlib, którym nie jest StackOverflow (AFAIK).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-04 03:29:20