If you want to build PIL on Windows, you need to prepare few external libraries. Although some libraries did not provide static library for windows 32/64 bits then you need to build these libraries by your hand too. Also, PIL will load by python at last then you are recommended to use same compiler with python to build libraries.
| Pillow: | 1.7.8 for Python 2.7: src |
|---|
| Python-2.6 (x32|x64): | VisualC++ 2008 Express SP1 + Windows SDK 2008 |
|---|---|
| Python-2.7 (x32|x64): | VisualC++ 2008 Express SP1 + Windows SDK 2008 |
Python-2.4 and 2.5 need VisualStudio 7.1. see also https://gist.github.com/shimizukawa/4634344
| freetype2: | 2.4.11 src |
|---|---|
| jpeg6b: | 6b 27-Mar-1998 src |
| LittleCMS: | 1.19 src |
| tcl: | 8.5.13 src |
| tk: | 8.5.13 src |
| zlib: | 1.2.7 src |
- invoke Windows SDK's
CMD ShellfromStart -> Microsoft Windows SDK v6.1 -> CMD Shell - type
setenv /x86 /releaseorsetenv /x64 /releasewhich you want. - type
set libpath=dummy
- extract
freetype-2.4.11.tar.bz2intoC:\opt\freetype-2.4.11 cd builds\win32\vc2008- (Win64): open *.sln, *.vcproj by text editor and replace Win32 with x64.
- (Win32):
vcbuild.exe freetype.sln /rebuild "LIB Release|Win32" - (Win64):
vcbuild.exe freetype.sln /rebuild "LIB Release|x64"
- (Win32):
- done! You got
objs\win32\vc2008\freetype2411.lib. - rename
freetype2411.libtofreetype.lib
- extract
jpegsr6b.zipintoC:\opt\jpeg-6b - rename
jconfig.vctojconfig.h nmake -f makefile.vc- done! You got
libjpeg.lib.
- extract
lcms-1.19.zipintoC:\opt\lcms-1.19 cd Projects\VC2008- (Win64): open *.sln, *.vcproj by text editor and replace Win32 with x64.
- (Win32):
vcbuild.exe lcms.sln /rebuild "Release|Win32" - (Win64):
vcbuild.exe lcms.sln /rebuild "Release|x64"
- (Win32):
- done! You got
Lib\MS\lcms.lib.
Note
You need to choose 1.x series of Little CMS for PIL.
- extract
tcl8.5.13-src.zipandtk8.5.13-src.zip cd C:\opt\tcl8.5.13\winnmake -f makefile.vc INSTALLDIR=C:\opt\tcl releasenmake -f makefile.vc INSTALLDIR=C:\opt\tcl installcd C:\lib\tk8.5.13\winnmake -f makefile.vc TCLDIR=..\\..\\tcl8.5.13 INSTALLDIR=C:\opt\tcl releasenmake -f makefile.vc TCLDIR=..\\..\\tcl8.5.13 INSTALLDIR=C:\opt\tcl install- done! you got
C:\opt\tcl\lib\tcl85.libandC:\opt\tcl\lib\tk85.lib
- extract
zlib127.zipintoC:\opt\zlib-1.2.7 cd contrib\vstudio\vc9- (Win64): open *.sln, *.vcproj by text editor and replace Win32 with x64.
- (Win32):
vcbuild.exe zlibstat.vcproj /rebuild "ReleaseWithoutAsm|Win32" - (Win64):
vcbuild.exe zlibstat.vcproj /rebuild "ReleaseWithoutAsm|x64"
- (Win32):
- done! You got
contrib\vstudio\vc9\(x86|x64)\ZlibStatReleaseWithoutAsm\zlibstat.lib. - rename
zlibstat.libtozlib.lib
extract PIL source into
C:\opt\pillowwrite setup.cfg:
[build_ext] library_dirs = C:\opt\freetype-2.4.11\objs\win32\vc2008\freetype2411.lib;C:\opt\jpeg-6b;C:\opt\lcms-1.19\Lib\MS;C:\opt\tcl;C:\opt\zlib-1.2.7\contrib\vstudio\vc9\x64\ZlibStatReleaseWithoutAsm; include_dirs = C:\opt\freetype-2.4.11\include;C:\opt\jpeg-6b;C:\opt\lcms-1.19\include;C:\opt\tcl\include;C:\opt\zlib-1.2.7;
- build (with inplace option for selftest)::
python-2.7 -S setup.py build_ext -i build
- self test::
python-2.7 -S selftest
- make windows installer if you want::
python-2.7 -S setup.py bdist_wininst
- make binary egg package if you want::
python-2.7 -S setup.py bdist_egg
s