2015-01-24 1 views
0

AWS Elastic Beanstalk에서 표준 Python 패키지 경로 (2.6.x 또는 Elastic Beanstalk 환경에서 사용되는 2.7.x 버전)에 포함되지 않은 디렉토리에 Python packages installed이 있습니다. 결과적으로이 패키지는 requirements.txt에 나열된 패키지를 설치할 때 AWS-EB 배포 프로세스에서 볼 수 없기 때문에 (종종) 매우 긴 배포 시간으로 인해 중복 패키지가 설치 될 수 있습니다.AWS-EB 파이썬 앱 배포 프로세스에서 추가 패키지 디렉토리를 볼 수 있습니까?

내 패키지가 설치된 디렉토리를 배포 프로세스에 표시 할 수있는 방법이 있습니까?


개념적으로, 이후 (I 가정) requirements.txt 처리가 내 응용 프로그램의 가상 환경에서 발생 (그것을합니까?) I could

echo 'export PYTHONPATH="/anaconda/lib/python2.7/site-packages"' >> /opt/python/run/venv/bin/activate 
requirements.txt가 처리되기 전에 어떤 단계에서

( tidiness에 대한)
sed -i '/^export PYTHONPATH/d' /opt/python/run/venv/bin/activate 

비활성화 할 때. 그러나 이것이 배포의 올바른 시점에서 발생한다는 것이 확실하지 않습니다. 어쨌든 사용 권한 문제로 인해 작동하지 않습니다. (eb sshcontainer_commands에 아무런 영향이 없을 때 거부됩니다.) 아마도 올바른 경로에 있지만 이와 비슷한 것일 수 있습니다. 내가 할 수있는 장소가 있습니까 "hook" 비슷한 명령? (어떤 경우 든 내가하려는 일을 대략적으로 보여줍니다.)

+0

왜 코드에서 파이썬 경로의 경로를 추가하지 않습니까? –

+0

내 코드가 배포를 수행하지 않습니다. 필자의 목표는 requirements.txt가 처리 될 때 (필자의 코드가 실행될 때가 아니라) Python 패키지 경로에 디렉토리를 두어 모든 의존성이 내가 이미 그 디렉토리에 설치 한 패키지로 충족 될 수 있도록하는 것이다.)가 다시 설치되었습니다. – orome

+0

requirements.txt에 모듈을 포함시키지 않는 이유는 무엇입니까? –

답변

0

Anaconda가 배포 프로세스 초기 및 모든 사용자를 위해 Python 모듈 검색 경로에 있는지 확인하는 가장 간단한 방법은 .pth 파일을 .ebextensions 파일 시스템 사이트 패키지 디렉토리 :

files: 
    "/opt/python/run/venv/lib/python2.7/site-packages/anaconda.pth": 
    mode: "000644" 
    owner: root 
    group: root 
    content: | 
     /anaconda/lib/python2.7/site-packages 

이 시스템 사이트 패키지 디렉토리에있는 파일 후 아나콘다를 배치하는 추가적인 장점이있다 (PYTHONPATH 전에 그들을 배치 것이다).

관련 문제