2017-10-10 22 views
0

구글 클라우드에 플라스크 애플리케이션을 배치하려고합니다. 지시 사항을 따르면서도 dev 서버를 시작할 때마다 vendor.add('lib') 라이브러리를 찾을 수 없습니다. 이 문제를 해결하는 방법?Google App Engine에서 appengine_config에서 라이브러리를 찾을 수 없습니다.

sudo /google-cloud-sdk/bin/dev_appserver.py app.yaml > file 
INFO  2017-10-10 20:20:04,276 devappserver2.py:115] Skipping SDK update check. 
INFO  2017-10-10 20:20:04,338 api_server.py:299] Starting API server at: http://localhost:53496 
WARNING 2017-10-10 20:20:04,338 dispatcher.py:285] Your python27 micro version is below 2.7.12, our current production version. 
INFO  2017-10-10 20:20:04,343 dispatcher.py:224] Starting module "default" running at: http://localhost:8080 
INFO  2017-10-10 20:20:04,345 admin_server.py:116] Starting admin server at: http://localhost:8000 
/deploy_10oct/lib 
ERROR 2017-10-10 20:20:11,913 wsgi.py:263] 
Traceback (most recent call last): 
    File "/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle 
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler 
    handler, path, err = LoadObject(self._handler) 
    File "/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject 
    obj = __import__(path[0]) 
    File "deploy_10oct/main.py", line 11, in <module> 
    import h5py 
ImportError: No module named h5py 
INFO  2017-10-10 20:20:11,919 module.py:821] default: "GET/HTTP/1.1" 500 - 

디렉토리 구조

ls 
app.yaml  
env   
lame.pyc   
main.pyc   
templates 
appengine_config.py   
lib   
requirements.txt  
uploads 
appengine_config.pyc  
lame.py   
main.py   
static  
+1

당신이 당신의'appengine_config.py'를 공유 할 수 있을까요? –

답변

1

당신은 당신의 응용 프로그램 내부 lib 디렉토리를 생성하고 (하지 시스템의 파이썬 설치에) 그 디렉토리에 종속성을 설치해야합니다. Installing a third-party library에서 :

  1. lib/로, 같은를 타사 라이브러리를 저장할 디렉토리를 작성하십시오. -t <directory> 플래그

    mkdir lib 
    
  2. 사용 pip (버전 6 이상) 이전 단계에서 만든 폴더에 라이브러리를 복사합니다. 예를 들면 :

    pip install -t lib/ <library_name> 
    
+0

나는 그것을 정확하게했다. hello world를 호출하고 h5py를 가져온 작은 프로그램을 작성하여 동일한 오류가 발생합니다. 오류는 wsgi 줄 263에 있습니다. 지금 어떻게 디버깅합니까? – Hooli

+0

독립 실행 형 애플리케이션! = GAE 애플리케이션. 독립 실행 형 응용 프로그램은 로컬 파이썬 경로의 라이브러리를 사용하며 GAE 응용 프로그램은 내부에 포함 된 라이브러리를 사용합니다. devserver에서 GAE 응용 프로그램을 실행해야합니다. 독립 실행 형 프로그램을 대신 GAE 앱 라이브러리를 사용하도록 가르 칠 수도 있지만 IMHO는 시간 낭비 일뿐입니다. –