如何在Windows中使用pip + mingw安装PIL?

时间:2013-05-15 14:14:46

标签: python mingw python-imaging-library pip

我正在尝试使用pip和mingw安装PIL。但是它失败如下。

Downloading/unpacking PIL
  Running setup.py egg_info for package PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

Installing collected packages: PIL
  Running setup.py install for PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py
    building '_imaging' extension
    C:\MinGW\bin\gcc.exe -mdll -O -Wall -IlibImaging -IC:\Python27\include -IC:\Python27\include -IC:\Python27\PC -c _imaging.c -o build\temp.win32-2.7\Release\_imaging.o
    _imaging.c: In function 'init_imaging':
    _imaging.c:3253:15: warning: variable 'd' set but not used [-Wunused-but-set-variable]
    C:\MinGW\bin\gcc.exe -mdll -O -Wall -IlibImaging -IC:\Python27\include -IC:\Python27\include -IC:\Python27\PC -c decode.c -o build\temp.win32-2.7\Release\decode.o
    C:\MinGW\bin\gcc.exe -mdll -O -Wall -IlibImaging -IC:\Python27\include -IC:\Python27\include -IC:\Python27\PC -c encode.c -o build\temp.win32-2.7\Release\encode.o
    C:\MinGW\bin\gcc.exe -mdll -O -Wall -IlibImaging -IC:\Python27\include -IC:\Python27\include -IC:\Python27\PC -c map.c -o build\temp.win32-2.7\Release\map.o
    In file included from c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/winnt.h:192:0,
                     from c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/windef.h:253,
                     from c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/windows.h:48,
                     from map.c:35:
    c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:50:21: error: duplicate 'signed'
    c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:50:21: error: two or more data types in declaration specifiers
    c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:51:22: error: duplicate 'short'
    c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:56:23: error: duplicate 'unsigned'
    c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:56:23: error: two or more data types in declaration specifiers
    c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:57:24: error: duplicate 'unsigned'
    c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:57:24: error: duplicate 'short'
    error: command 'gcc' failed with exit status 1
    Complete output from command C:\Python27\python.exe -c "import setuptools;__file__='c:\\users\\marshall\\appdata\\local\\temp\\pip-build-marshall\\PIL\\setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\marshall\appdata\local\temp\pip-pnnyve-record\install-record.txt --single-version-externally-managed:
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

running install

running build

running build_py

running build_ext

building '_imaging' extension

C:\MinGW\bin\gcc.exe -mdll -O -Wall -IlibImaging -IC:\Python27\include -IC:\Python27\include -IC:\Python27\PC -c _imaging.c -o build\temp.win32-2.7\Release\_imaging.o

_imaging.c: In function 'init_imaging':

_imaging.c:3253:15: warning: variable 'd' set but not used [-Wunused-but-set-variable]

C:\MinGW\bin\gcc.exe -mdll -O -Wall -IlibImaging -IC:\Python27\include -IC:\Python27\include -IC:\Python27\PC -c decode.c -o build\temp.win32-2.7\Release\decode.o

C:\MinGW\bin\gcc.exe -mdll -O -Wall -IlibImaging -IC:\Python27\include -IC:\Python27\include -IC:\Python27\PC -c encode.c -o build\temp.win32-2.7\Release\encode.o

C:\MinGW\bin\gcc.exe -mdll -O -Wall -IlibImaging -IC:\Python27\include -IC:\Python27\include -IC:\Python27\PC -c map.c -o build\temp.win32-2.7\Release\map.o

In file included from c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/winnt.h:192:0,

                 from c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/windef.h:253,

                 from c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/windows.h:48,

                 from map.c:35:

c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:50:21: error: duplicate 'signed'

c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:50:21: error: two or more data types in declaration specifiers

c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:51:22: error: duplicate 'short'

c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:56:23: error: duplicate 'unsigned'

c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:56:23: error: two or more data types in declaration specifiers

c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:57:24: error: duplicate 'unsigned'

c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/basetsd.h:57:24: error: duplicate 'short'

error: command 'gcc' failed with exit status 1

----------------------------------------
Command C:\Python27\python.exe -c "import setuptools;__file__='c:\\users\\marshall\\appdata\\local\\temp\\pip-build-marshall\\PIL\\setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\marshall\appdata\local\temp\pip-pnnyve-record\install-record.txt --single-version-externally-managed failed with error code 1 in c:\users\marshall\appdata\local\temp\pip-build-marshall\PIL
Storing complete log in C:\Users\marshall\pip\pip.log

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

INT8,INT16,UINT8,UINT16在PIL源中定义

你可以在c:\ mingw \ include \ basetsd.h中添加#ifndef..#endif

+#ifndef INT8
 typedef signed char INT8;
+#endif

适用于所有类型。 (其中'+'表示添加行)

它有效。

答案 1 :(得分:0)

我建议使用预先安装的安装程序。请参阅PIL Unofficial Windows Binary,但我强烈建议使用Pillow(也可以从同一链接获得安装程序)。