&引用;解码器jpeg不可用“;在弹性豆茎上搭配Django
我正在弹性豆茎上开发Django后端系统 上载JPEG图像文件时,出现错误&引用;解码器jpeg不可用“;在弹性豆茎上搭配Django,django,image,jpeg,amazon-elastic-beanstalk,django-file-upload,Django,Image,Jpeg,Amazon Elastic Beanstalk,Django File Upload,我正在弹性豆茎上开发Django后端系统 上载JPEG图像文件时,出现错误解码器JPEG不可用。上载.png图像文件不会导致任何问题 后端环境: AWS beanstalk:64位Amazon Linux 2014.03 v1.0.4运行Python 2.7 python:2.7 pip包列表 Django==1.6.5 降价==2.4.1 MySQL python==1.2.5 枕头==2.5.3 boto==2.30.0 django过滤器==0.7 django存储==1.1.8 dja
解码器JPEG不可用
。上载.png图像文件不会导致任何问题
后端环境:
- AWS beanstalk:64位Amazon Linux 2014.03 v1.0.4运行Python 2.7
- python:2.7
- pip包列表 Django==1.6.5 降价==2.4.1 MySQL python==1.2.5 枕头==2.5.3 boto==2.30.0 django过滤器==0.7 django存储==1.1.8 djangorestframework==2.3.14 wsgiref==0.1.2
normalImage = NormalImage(image=image, userProfile=request.user.profile, category = category)
normalImage.save()
型号
class NormalImage(models.Model):
userProfile = models.ForeignKey(UserProfile)
height = models.PositiveIntegerField(editable=False)
width = models.PositiveIntegerField(editable=False)
image = models.ImageField(upload_to=rename_image_file, width_field='width', height_field='height')
size = models.TextField()
price = models.PositiveIntegerField()
tags = models.ManyToManyField(Tag)
category = models.ForeignKey(Category)
created_datetime = models.DateTimeField(auto_now_add=True)
def __init__(self, *args, **kwargs):
super(NormalImage,self).__init__(*args, **kwargs)
if not self.id:
self.size = Size.determineSizeDescription(anWidth=self.width, aHeight=self.height)
self.price = Size.determinePrice(anWidth=self.width, aHeight=self.height)
def get_created_datetime_str(self):
return self.created_datetime.strftime('%Y-%m-%d %H:%M:%S')
def get_image_url(self):
return 'http://photocoapi-env-x2ezvferc7.elasticbeanstalk.com/images/' + str(self.id) + '/'
错误代码:
IOAT/me/请求错误/
解码器jpeg不可用请求方法:获取请求URL:德扬戈 版本: 1.6.5异常类型:IOError异常值:解码器jpeg不可用异常位置: /opt/python/run/venv/lib/python2.7/site-packages/PIL/Image.py-in _getdecoder,第413行Python可执行文件:/opt/Python/run/venv/bin/Python版本: 2.7.5 Python路径:['/opt/Python/run/venv/lib/python2.7/site packages', “/opt/python/current/app”、“/opt/python/bundle/4/app”, “/opt/python/run/baselinenv/lib64/python27.zip”, “/opt/python/run/baselinenv/lib64/python2.7”, “/opt/python/run/baselinenv/lib64/python2.7/plat-linux2”, “/opt/python/run/baselinenv/lib64/python2.7/lib tk”, “/opt/python/run/baselinenv/lib64/python2.7/lib old”, “/opt/python/run/baselinenv/lib64/python2.7/lib dynload”, “/usr/lib64/python2.7”、“/usr/lib/python2.7”, '/opt/python/run/baselinenv/lib/python2.7/site packages'] 我试图解决的问题是:
- 我通过SSH连接到beanstalk服务器,并使用yum或up2date安装在库下面
- yum:libjpeg-devel、zlib-devel、freetype-devel
- 然后进行符号链接 $sudo ln-s/usr/lib64/libjpeg.so/usr/lib $sudo ln-s/usr/lib64/zlib.so/usr/lib $sudo ln-s/usr/lib64/freetype.so/usr/lib
- 卸载枕头:
pip卸载枕
- 安装jpeg库:
yum安装libjpeg-devel
- 重新安装枕头:
pip安装枕
.ebextensions/01 yum.config
的文件,并将以下内容放入其中
packages:
yum:
libjpeg-devel: []
<another-package>: []
软件包:
百胜:
libjpeg-devel:[]
下面是一个关于将requirements.txt与Elastic Beanstalk一起使用的教程
yum未能找到libjpeg-devel。但这对我起了作用:
packages:
yum:
libjpeg-turbo-devel: []
希望这对某人有所帮助。
干杯 首先,谢谢你的回答。事实上我做了好几次。我试着卸下枕头并再次安装libjpeg/枕头,但结果是一样的。所以,我在这里写了一个问题,我是否遗漏了AWS beanstalk的一些属性。例如,与其他Linux系统相比,我现在使用的Amazon Linux通常不支持这些包。对不起,我对AWS beanstalk没有任何经验。您是否安装了“python-devel”yum软件包?您还可以尝试编辑setup.cfg以指定jpeg库位置,并手动运行“python setup.py install”以安装Pillow(如本文所述)。我也有同样的问题,添加ebextension无法解决。在我的日志中显示,yum已安装libjpeg:Sep 30 19:00:27更新:libjpeg-turbo-1.2.1-3.3.amzn1.x86_64 Sep 30 19:00:27已安装:libjpeg-turbo-devel-1.2.1-3.3.amzn1.x86_64