본문 바로가기

나의 IT

virtualenv 환경에서 Google App Engine 구동하기 - python

GAE를 Virtualenv 에서 구현하기.


virtualevn 설치법 및 기본 사용법은 [여기]


cd project

virtualenv -p --no-site-packages --distribute ./


로 project 안에 virtualenv를 생성합니다.


디렉토리 구조는 다음과 같습니다.


    project
    • .Python
    • bin < virtualenv 관련 파일 >
    • lib
      • python2.5
        • site-packages
          • < pip install 로 설치한 패키지는 이곳에 설치됨 >
    • include
    • src < 앱엔진 관련 소스코드들을 이곳에 설치 django, flask 포함 등등 >
      • app.yaml
      • index.yaml
      • main.yaml
      • <- 이곳에 pip install 로 설치한 패키지를 심볼릭 링크 걸어줘야함.

매번 패키지를 pip로 설치할때마다 심볼릭 링크를 생성해 줄 수 없으므로 lib 란 이름으로 project > src > lib 를 생성

cd projct/src
ln -s ../lib/python2.7/site-packages/ ./lib


구글 앱엔진이 실행될때 lib 폴더가 자동 시스템 패스에 들어가도록 main.py를 수정


sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'lib'))


구글 앱엔진에는 파일갯수의 제한이 있기 때문에 (10,000개) django 같은 큰 프로젝트를 업로드하면 파일갯수가 초과됩니다.


그럴땐 라이브러를 압축해서 올리는 방법이 있습니다.


압축한 라이브러리를 main.py와 같은 폴더에 위치시키고 main.py 에 다음을 추가

for p in ['librarie.zip', 'package.egg'...]: 

    sys.path.insert(0, p)