코드가 배포되면 사용자가 조치를 취하지 않고도 지원되는 모든 라이브러리에 액세스 할 수 있습니다. 응용 프로그램 특정 디렉토리를 경로에 추가하려면 핸들러 내에서 프로그래밍 방식으로 수행해야합니다. 나는이 같은 패턴을 사용
당신이 응용 프로그램의 일부가 아닌 모듈을 가져 오는 문제가있는 것을 발견하면
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()
당신 주() 함수 내부의 경로 설정 코드를 할 수 있습니다.
어떤 오류가 발생하고 있습니까? 'something_else'는'something' 패키지 안에있는 모듈인가,'something' 모듈 안에있는 심볼인가요? –
@Brandon : 정확하게 대답 할 수 있었으면 좋겠지 만, 이것이 제 첫 번째 Python 프로젝트입니다. "something_else"라는 클래스가 정의되어있는 "something.py"라는 파일이 있습니다. 그 클래스를 내 처리기에서 사용할 수있게하려고 노력 중입니다. – Deane
'something.py'은 어디에 있습니까? 이 작업을 만드는 가장 간단한 솔루션은 앱의 루트 디렉토리에 저장하는 것입니다. –