2

사전에 저를 용서해주십시오. 제가 직면하고있는이 문제는 많은 뉘앙스로 인해 표현하기 어렵습니다.Elastic Beanstalk SciPy. * 조용히 실패합니다.

우선 응용 프로그램 : 응용 프로그램은 간단한 Flask 응용 프로그램입니다. 기본 GET / 경로는 단순히 객체 응답 (정적)을 반환하고 SciPy 또는 Flask 이외의 다른 라이브러리를 호출하지 않습니다. 그런 다음 올바른 스키마로 호출되면 모델을 실행할 POST 경로가 있습니다 (다른 로컬 파일에서 application.py로 가져옴). 이 모델은 SciPy, Matplotlib 및 Numpy를 사용합니다.

application.py 시작시 발생하는 유일한 작업은 import Flask와 "model".py이며 이는 다시 matplotlib, numpy 및 scipy의 하위 구성 요소를 가져옵니다.

EB 환경 : Python 2.7을 실행하는 t2 중간 서버의 Amazon Linux 환경입니다. 서비스 앞에 앉아있는로드 밸런서가 있습니다.

문제 : SciPy 하위 구성 요소를 가져올 때 시작되는 응용 프로그램에서 문제가 발생합니다. 로그에 오류가 없으며 scipy가 잘 설치되고 만족됩니다. scipy를 사용하지 않는 GET/route를 시도하면 응답 시간이 만료됩니다. 모델에서 scipy의 모든 가져 오기를 제거하면 GET 경로가 문제없이 응답합니다. POST 경로가 실패하더라도 실제로 실행될 때 요구 사항이 없기 때문에 분명합니다. 만약 내가 단지 import scipy에 있다면 GET 라우트가 작동 할 것입니다 (여전히 특정 요구 사항이 더 이상 언급되지 않았기 때문에 모델은 실패 할 것입니다).

실제로 from scipy import ...이있을 때마다 문제가 발생합니다. 응용 프로그램은 자동으로 시간 초과되며 로그에는 오류가 없습니다.

이것은 약간의 손실이 있으며 도움이나 제안을 보내 주시면 대단히 감사하겠습니다.

답변

3

문제 파이썬 컴파일러 액세스 WSGI 함께 참조 :

외에 하위 인터프리터 GIL 상태 관리를위한 단순화 된 API에 대하여 구현 파이썬 대한 C 확장 모듈을 사용하는 시도의 결과를 첫 번째는 코드가 교착 상태에 빠지거나 프로세스가 손상 될 가능성이 있다는 것입니다. 이 문제를 해결할 수있는 유일한 방법은이 API를 사용하는 C 확장 모듈을 사용하는 모든 WSGI 응용 프로그램이 파이썬이 초기화 될 때 생성 된 첫 번째 Python 하위 인터프리터에서만 실행되도록하는 것입니다.

wsgi.conf 파일에 서버의 WSGIApplicationGroup %{GLOBAL}을 추가해야합니다.

은 내 블로그에이 문제의 전체 개요를 게시 한 : djmck @ http://djm.io/deploying-scipy-into-aws-elastic-beanstalk/

+0

은 내가에만이로 실행 하나라고 생각! 이 접근법이 여전히 작동하는지 알고 있습니까? 나는 "Yum이 설치에 사용할 수있는 python-devel을 가지고 있지 않다"고 생각했습니다. – Pylander

관련 문제