2012-07-20 96 views
1

我想在我的亚马逊实例上“安装PIL”,但我一直收到这个错误,有什么建议吗?无法在亚马逊ec2上安装PIL

下载/拆包PIL 竞选包PIL

警告setup.py egg_info: '' 不是有效的软件包名称;请setup.py 安装收集软件包使用only.分隔的包名:PIL

运行的setup.py安装PIL

WARNING: '' not a valid package name; please use only.-separated package names in setup.py 
building '_imaging' extension 
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DHAVE_LIBZ -IlibImaging -I/home/ec2-user/food-chute/foodchute/venv/include -I/usr/local/include -I/usr/include -I/usr/include/python2.6 -c _imaging.c -o build/temp.linux-x86_64-2.6/_imaging.o 
_imaging.c:75:20: error: Python.h: No such file or directory 
In file included from libImaging/Imaging.h:14, 
       from _imaging.c:77: 
libImaging/ImPlatform.h:14:2: error: #error Sorry, this library requires support for ANSI prototypes. 
libImaging/ImPlatform.h:17:2: error: #error Sorry, this library requires ANSI header files. 
libImaging/ImPlatform.h:55:2: error: #error Cannot find required 32-bit integer type 
In file included from _imaging.c:77: 
libImaging/Imaging.h:90: error: expected specifier-qualifier-list before ‘INT32’ 
libImaging/Imaging.h:264: error: expected specifier-qualifier-list before ‘INT32’ 
libImaging/Imaging.h:395: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ImagingCRC32’ 
_imaging.c:124: error: expected specifier-qualifier-list before ‘PyObject_HEAD’ 
_imaging.c:129: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PyTypeObject’ 
_imaging.c:143: error: expected specifier-qualifier-list before ‘PyObject_HEAD’ 
_imaging.c:151: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PyTypeObject’ 
_imaging.c:154: error: expected specifier-qualifier-list before ‘PyObject_HEAD’ 
_imaging.c:160: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PyTypeObject’ 
_imaging.c:165: error: expected specifier-qualifier-list before ‘PyObject_HEAD’ 
_imaging.c:170: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PyTypeObject’ 
_imaging.c:172: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token 
_imaging.c: In function ‘_dealloc’: 
_imaging.c:204: error: ‘ImagingObject’ has no member named ‘access’ 

错误:命令 'GCC' 失败,退出状态1

回答

2

发生这种情况的原因是因为ec2默认具有gcc版本4.4.6,无法编译Python Imaging Library。但是如果你去EC2的网站上,你可以通过执行以下操作

While GCC 4.4.6 remains the default, we have included GCC 4.6.2, specifically for use on EC2 instances that support AVX. Run yum install gcc46 in order to get the packages. GCC 4.6 enables the Amazon Linux AMI to take advantage of the AVX support available on cc2.8xlarge instance types.

源头上解决这个问题:http://aws.amazon.com/amazon-linux-ami/2012.03-release-notes/

0

对我来说,要解决这个问题,其实只是安装中的python-devel的