2011-03-31 7 views
0

SDK의 환경 설정에서이를 설정할 수 있다는 것을 알고 있지만, 앱을 배포 할 때 올바르지 않을까 걱정됩니다. Google Cloud에서 PYTHON_PATH 가치는 무엇입니까? 이것을 설정할 수 있습니까? 내 Google App Engine 앱에 PYTHON_PATH 변수를 설정하려면 어떻게해야하나요?

난 그냥 할 수 있도록하려면, 거꾸로 단계를 간다 :

from something import something_else 

내 앱이 PYTHON_PATH을 얻으려고 노력를 알려준 것입니다이 참조를 확인할 수 없습니다.

+0

어떤 오류가 발생하고 있습니까? 'something_else'는'something' 패키지 안에있는 모듈인가,'something' 모듈 안에있는 심볼인가요? –

+0

@Brandon : 정확하게 대답 할 수 있었으면 좋겠지 만, 이것이 제 첫 번째 Python 프로젝트입니다. "something_else"라는 클래스가 정의되어있는 "something.py"라는 파일이 있습니다. 그 클래스를 내 처리기에서 사용할 수있게하려고 노력 중입니다. – Deane

+0

'something.py'은 어디에 있습니까? 이 작업을 만드는 가장 간단한 솔루션은 앱의 루트 디렉토리에 저장하는 것입니다. –

답변

1

코드가 배포되면 사용자가 조치를 취하지 않고도 지원되는 모든 라이브러리에 액세스 할 수 있습니다. 응용 프로그램 특정 디렉토리를 경로에 추가하려면 핸들러 내에서 프로그래밍 방식으로 수행해야합니다. 나는이 같은 패턴을 사용

당신이 응용 프로그램의 일부가 아닌 모듈을 가져 오는 문제가있는 것을 발견하면
paths = [ 
    os.path.join(os.path.dirname(__file__), 'mylib'), 
    os.path.join(os.path.dirname(__file__), 'app', 'tags'), 
    os.path.join(os.path.dirname(__file__), 'app', 'controllers'), 
    os.path.join(os.path.dirname(__file__), 'app', 'common'), 
    os.path.join(os.path.dirname(__file__), 'app', 'models'), 
    os.path.join(os.path.dirname(__file__), 'app') 
] 
for path in paths: 
    if os.path.exists(path): 
     # Don't add paths that don't exist. 
     sys.path.append(path) 

,이 모듈 AppEngine에 지원되지 않는다는 될 수있다. 자세한 내용은 the docs을 참조하십시오.

EDIT : 누구나 AppEngine 응용 프로그램을 약간 다르게 구성하지만 일반적으로 app.yaml의 처리기로 나열된 각 .py 파일의 기본 진입 점에이 코드가 있어야합니다. 일반적으로, 핸들러 파일은 다음과 같다 뭔가를해야합니다 :

def main(): 
    # Do all of my initialization and run my 
    # WSGIApplication 

if __name__ == "__main__": 
    main() 

당신 주() 함수 내부의 경로 설정 코드를 할 수 있습니다.

+0

일반적으로이 코드를 어디에 넣으시겠습니까? 모든 처리기에 넣거나 기본 처리기를 만들고 처리기를 상속합니까? – Deane

+0

@Deane : 귀하의 질문에 대한 답변을 게시했습니다. –