2017-12-15 7 views
1

로컬 서버에서 Webapp2를 사용하여 내 응용 프로그램을 성공적으로 실행했습니다. 이제 이것을 Google App Engine에 배포하고 싶습니다. 라이브러리가 호환되지 않기 때문에 현재 일부 오류를 디버깅하고 있습니다.GAE Standard Env (Python 27)에서 Numpy (v1.9.0), Pandas 및 SKlearn 설치

앱을 구성하려면 Google guide을 따라 제 3 자 플러그인을 추가하십시오. lib 폴더 추가 : 나는 내 응용 프로그램을 배포 할 때

google-cloud-bigquery 
oauth2client==4.1.2 
google-api-python-client==1.6.4 
pandas-gbq 
pandas 
scipy 
scikit-learn==0.18.2 
numpy==1.9.0 

입니다 pip install -t lib -r requirements.txt를 사용하여 내 요구 사항을 설치는 lib 폴더에서

# appengine_config.py 
from google.appengine.ext import vendor 

# Add any libraries install in the "lib" folder. 
vendor.add('lib') 

를, 내가 볼 :

Traceback (most recent call last): File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler handler, path, err = LoadObject(self._handler) File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject obj = import(path[0]) File "/base/data/home/apps/s~corded-epigram-579/gr:20171215t102242.406232341485344902/main.py", line 17, in import pandas as pd File "/base/data/home/apps/s~corded-epigram-579/gr:20171215t102242.406232341485344902/lib/pandas/init.py", line 19, in "Missing required dependencies {0}".format(missing_dependencies)) ImportError: Missing required dependencies ['numpy']

하는 기본적 그것이 numpy를 찾을 수 없다는 것을 나에게 말한다, 그러나 그것은 lib 폴더 안에있다.

나는 구글 내가 app.yaml 파일을 사용하여 추가 할 수 있습니다 NumPy와 v1.6.1를 지원하는지 알고 있지만, 나는 pandas 패키지 적어도 1.9.0 이 필요합니다.

또한 코드를 실행하는 데 필요한 main.py 가져 오기의 스크린 샷을 추가했습니다. built-in libraries provided by Google을 제외하고

enter image description here

+0

에 수입을 수정 막 시작한거야? – percusse

+0

@percusse 옛날에 무슨 뜻입니까? 플렉스 대신 표준? 나는 webapp2를 사용하여 간단한 응용 프로그램을 작성하는 자습서를 따르고있었습니다. 나는 장고를 시험해보고 flex에 사용하는 것을 고려하고있다. 플렉스는 lib 폴더를 제거하고 app.yaml을 flex로 변경하는 것처럼 간단합니다. – GRS

+0

새로운 Numpy/pandas? GAE는 내가 실수하지 않는다면 2016 년부터 착각하지 않는다면 Py3를 지원합니다. – percusse

답변

1

앱 엔진 표준 환경 only supports pure Python libraries. Numpy 1.6.1이 제대로 작동하지 않는다면 유연한 환경이나 Compute Engine과 같은 플랫폼을 사용해야합니다.

응용 프로그램과 요구 사항에 따라 응용 프로그램을 여러 개의 App Engine "services"으로 설계 할 수 있습니다. 예를 들어 이러한 라이브러리를 사용하여 오프라인 또는 비동기 분석을 수행해야한다고 가정 할 때 유연한 환경을 목표로하는 서비스에서 해당 코드를 실행하고 나머지 응용 프로그램을 표준 환경의 서비스에서 실행하게 할 수 있습니다. 동일한 프로젝트가 응용 프로그램을 서비스로 다이빙함으로써 환경 또는 심지어 언어로 분할 될 수 있습니다.

-1

은 lib 디렉토리에 init.py 파일을 추가 한 다음

는 appengine_config.py :

from google.appengine.ext import vendor 
import os 
vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))# vendor.add('lib') 

는 왜 기존의 소프트웨어 당신이 만약을 사용하는

from lib.something import something