8

matplotlib에 numpy가 이미 설치되어 있어야하기 때문에 문제가 발생했습니다.Elastic Beanstalk에 matplotlib을 설치하는 방법

Elastic Beanstalk 환경에 다른 python 패키지를 설치하려면 pip requirements.txt 파일을 사용하십시오. 설치 구성은 패키지를 알파벳순으로 자동 설치하므로 matplotlib가 항상 먼저 설치되므로 오류가 발생합니다.

누구든지이 문제가 있었고 성공적으로 해결 방법을 알고 있습니까?

답변

7

나는 며칠 동안 벽에 머리를 때려 왔지만 matplotlib/scipy/scikit-requirements.txt 파일을 사용하여 설치하려면 한 번에 하나의 모듈 만 수행해야합니다. .

내가 이해할 수있는 점은 Elastic Beanstalk 패키지가 가상 환경의 사이트 패키지 디렉토리에 설치되어 있지 않아서 전체 requirements.txt 파일을 통해 성공적으로 작동한다는 것입니다.

예를 들어 numpy와 scipy를 동시에 설치하려고하면 scipy가 특정 numpy 모듈 (numpy.distutils.core)을 찾을 수 없으므로 실패합니다. Numpy가 앉아 기다리고 /opt/python/run/venv/build에 앉아 있지만 pip는 /opt/python/run/venv/lib/python2.6/site-packages에서 찾고 numpy을 찾지 못합니다.

requirements.txt 파일에서 numpy 만 커밋하고 Elastic Beanstalk로 밀어 넣어야합니다. 이 작업이 성공하면 numpy 모듈이 올바른 위치에있게되고 필요에 따라 scipy 또는 matplotlib로 업데이트 된 두 번째 커밋을 만들 수 있습니다.

.ebextensions에서 구성 파일을주의 깊게 살펴 보려면 모든 종속성을 나열해야합니다. 특히, .ebextensions/myapp.config의 상단에 당신은 당신이 freetype-devel, scipy 및 libpng-devel하려면

packages: 
    yum: 
    gcc-c++: [] 
    gcc-gfortran: [] 
    python-devel: [] 
    atlas-sse3-devel: [] 
    lapack-devel: [] 
    libpng-devel: [] 
    freetype-devel: [] 
    zlib-devel: [] 

atlas-sse3-devellapack-devel이 필요하고, zlib-devel이하기 matplotlib에 필요한해야한다.

다른 대안은 Elastic Beanstalk에서 앱과 관련된 ec2 인스턴스에 SSH를 연결하고 가상 환경 (source /opt/python/run/venv/bin/activate)을 시작하고 직접 패키지를 설치하십시오.

+0

감사합니다. 그것이 나를 죽이고 있었다. 당신의 대답이 효과가 있습니다. – TeePaps

+0

문제 없습니다. 아직 설치하지 않았다면 설치를 종료하거나 다른 분기를 배포 할 때 설치를 다시 사용할 수 있도록 작업 인스턴스에서 사용자 지정 AMI를 만드는 것이 좋습니다. – nsecord

+1

나는 그렇게하지 않았지만 나는 확실히 그렇게 할 것이다. – TeePaps

관련 문제