WHAT'S NEW?
Loading...

Instalace matplotlib na Win7 (64bit), easy_install


Dnes jsem pokračoval v instalaci svých oblíbených vývojových nástrojů na svůj nový notebook Lenovo S205, kde jsem nainstaloval Win7 64. bitovou verzi. Při instalaci pythonu a dalších knihoven, které používám mě čekali na této cestě dobrodružství, které jsem opravdu nečekal. A nejednou jsem musel zažehnout oheň a pořádně rozpálit své mozkové závity a závity strejdy googla abych dospěl ke zdárnému konci. Verzi pythonu používám 2.6.7 a easy_instal z package distribute (http://pypi.python.org/pypi/distribute).
První nemilé překvapení mne čekalo při instalaci numpy, které je nutným při instalaci matplotlib. Tento balík jsem po chvilce hledání našel i pro 64 bit verzi windows na stránkách Christofa Goelkeho, Unofficial Windows Binaries for Python Extension Packages (http://www.lfd.uci.edu/~gohlke/pythonlibs/)
Další nezbytnou součástí pro instalaci matplotlib byla knihovna freetype. V aktuální verzi 2.6.4. K této verzi ani žádné předchozí strejček google verzi pro 64 bitové windows nenašel a tak jsem se rozhodl pro vlastní kompilace ze zdrojových souborů pod mingw64, které jsem získal ze stránek projektu MinGW-w64 (http://mingw-w64.sourceforge.net/) přesněji tedy personal build od uživatele sezero (http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/sezero_20110510/).
Instalace a konfigurace mingw64 a msys-w64 je na další článek, který budu brzy publikovat (mingw64). Binární soubory Freetype2 ve verzi 2.6.4 zkompilované gcc, MinGW-w64 dávám k dispozici a jsou zde ke stažení.
Po kompilaci a instalaci 64-bit verze freetype2 bylo ještě zapotřebí doinstalovat microsoft Visual C++ 2008 redist knihovnu msvcr90.dll ale opět v 64-bitové verzi. Tato knihovna se nenácházi kupodivu ani ve Windows\system32 ani ve Windows\systemWoW64 ale ve Windows\winsxs, přesný adresář a postup pro úspěšnou instalaci je popsán na stránkách biopythonu (http://www.biopython.org/wiki/64-bit_Windows_Biopython)
Dále samozřejmě potřebujeme knihovny pythonu, které nejsou v mingw k dispozici a dll verze pro kompilaci nestačí. Je zapotřebí pomocí nástroje gendef či pexports vytvořit import library (libpython.a), která kompilátoru už napoví jak přistoupit do rutin obsažených v dll knihovně. Program gendef.exe je už součástí mingw-w64, takže doporučiji použít následující postup, kde pythonXX představuje Vaši verzi pythonu (python27.dll) pro verzi 2.7
gendef.exe pythonXX.dll
dlltool.exe -D pythonXX.dll -l libpythonXX.a -d pythonXX.def
copy libpythonXX.a MINGW64_PATH\lib
V případě, že by se kompilace někomu nepovedla klidně napište do komentáře svůj mail a rád poradím, případně zašlu zkompilovanou knihovnu.
Tuto knihovnu je dále nutno zkopírovat do adresáře, kde máte nainstalován pyton/libs, neboť je při kompilaci a hledání knihoven prohledáván např. tento adresář.
Dalším problémem během kompilace je chyba o neexistujícím symbolu Py_InitModule4, která je zapříčiněna nesprávnou detekcí 64 bitového prostředí pro jiné kompilátory než jsou kompilátory od Microsoftu. Chybí definice symbolu -DMS_WIN64 a kompilátr si mylně myslí, že chceme v 32. bitovou knihovnou pythonu kompilovat 64. bitový modul. Řešení je poměrně jednoduché a stačí vám k tomu patch, který upravuje obsah souboru pyconfig.h. Celý problém a jeho řešení je popsáno zde: (http://bugs.python.org/issue4709)
Dalším problémem byl chybějící hlavičkový soubor png.h je třeba doinstalovat libpng.

0 komentářů:

Okomentovat