나는 Elastic beanstalk에서 Django 백엔드 시스템을 개발 중입니다.Django with Elastic beanstalk
JPEG 이미지 파일을 업로드 할 때 decoder jpeg not available
오류가 발생합니다. .png 이미지 파일을 업로드해도 문제가 발생하지 않습니다.
백엔드 환경 :
- AWS의 콩나무 : 64 비트 아마존 리눅스 파이썬 2.7을 실행 2014.03 v1.0.4
- 파이썬 : 2.7
- 핍 패키지 목록 장고 == 1.6.5 마크 다운의 == 2.4 0.1 MySQL을 파이썬 == 1.2.5 베개 == 2.5.3 BOTO의 == 2.30.0 장고 필터 == 0.7 장고 창고의 == 1.1.8 djangorestframework의 2.3.14 == 01 23,516,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) + '/'
오류 코드 :
,691,363 (210)IOError at /me/requests/ decoder jpeg not available Request Method: GET Request URL:
http://photoco-env-z5cnmns3pe.elasticbeanstalk.com/me/requests/ Django Version: 1.6.5 Exception Type: IOError Exception Value: decoder jpeg not available Exception Location: /opt/python/run/venv/lib/python2.7/site-packages/PIL/Image.py in _getdecoder, line 413 Python Executable: /opt/python/run/venv/bin/python Python Version: 2.7.5 Python Path: ['/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']
나는이 문제를 해결하기 위해 노력했습니다 무엇 :
- 내가 냠
yum을 사용하여 SSH를 통해 서버와 라이브러리 아래에 설치를 콩나무에 연결 : libjpeg-(STABLE), ZLIB-(STABLE)을, 심볼릭 링크 만들기 다음
을 (STABLE) - FREETYPE 및
$ sudo를 에선 -s는/usr/lib6 4/libjpeg.so는/usr/lib에 $ sudo를 에선 -s /usr/lib64/zlib.so는/usr/lib에 $ sudo를 에선 -s /usr/lib64/freetype.so는/usr/
LIB
먼저, 답변 해 주셔서 감사합니다. 나는 실제로 이것을 여러 번했다. 나는 베개를 제거하고 libjpeg/베개를 다시 설치하려고했지만 동일했습니다. 그래서 AWS beanstalk의 일부 속성을 놓쳤는 지 여부에 대해이 질문을 썼습니다. 예를 들어, 지금 사용하고있는 Amazon Linux는 다른 Linux 시스템과 비교하여 이러한 패키지를 정상적으로 지원하지 않습니다. – user2990490
확인. 죄송하지만 AWS beanstalk에 대한 경험이 없습니다. 'python-devel'yum 패키지를 설치 했습니까? setup.cfg를 편집하여 jpeg 라이브러리 위치를 지정하고 "python setup.py install"을 수동으로 실행하여 베개를 설치하십시오 (http://pillow.readthedocs.org/en/latest/installation.html# 간단한 설치) – pchiquet