GAE를 Virtualenv 에서 구현하기.
virtualevn 설치법 및 기본 사용법은 [여기]
cd project
virtualenv -p --no-site-packages --distribute ./
로 project 안에 virtualenv를 생성합니다.
디렉토리 구조는 다음과 같습니다.
- project
- .Python
- bin < virtualenv 관련 파일 >
- lib
- python2.5
- site-packages
- < pip install 로 설치한 패키지는 이곳에 설치됨 >
- site-packages
- python2.5
- 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)