2011-09-07 3 views
5

2 개월 전 Python으로 개발을 시작했습니다. C# 및 Java 배경을 가지고 있습니다.Python appengine 프로젝트에서 외부 라이브러리를 참조하고 Pydev/Eclipse를 사용합니다.

저는 현재 2 개의 다른 python/appengine 응용 프로그램에서 작업하고 있으며 이러한 경우에는 두 응용 프로그램 모두 공통 코드를 공유합니다. 따라서 공통/일반 코드를 리팩토링하고 공유 된 위치로 이동하려고합니다.

Java 또는 C#에서는 새 라이브러리 프로젝트를 만들고 코드를 새 프로젝트로 옮기고 기본 프로젝트에서 라이브러리에 대한 참조를 추가합니다.

파이썬에서 똑같은 기능을 시도했지만 작동시키지 못했습니다.

저는 Pydev 플러그인으로 Eclipse를 사용하고 있습니다. 나는 새의 PyDev 프로젝트를 만든

은, 코드를 이동하고, 시도 : (프로젝트 속성 사용하여 -> 프로젝트 참조) 주 프로젝트에서

  • 참조 라이브러리 프로젝트를
  • 이 라이브러리를 추가를 원본 폴더를 추가 할 때 프로젝트 경계를 벗어날 수 없다고 추측합니다.
  • (Google 라이브러리가 정의 된 것과 거의 같습니다.) , 속성 -> 외부 라이브러리 사용)
  • 개발하는 동안 내가 라이브러리 코드를 참조 할 수 있어요 모든 경우에

,하지만 디버깅을 시작하면에서 appengine 개발 - 링크로 (> 파일 시스템 및 "작업 공간에 링크 만들기"를 가능하게 가져 오기에서)

  • 가져 오기 서버는 내가 별도의 라이브러리 프로젝트로 옮긴 것을 찾을 수 없기 때문에 예외를 throw합니다. 물론

    가 나는 해결책을 많이 검색 한, 그러나 아무도이 같은 문제가 발생하지 않았다 것 같습니다 - 아니면 아무도 내가했습니다 같은 :

    가장 가까운 솔루션을 필요하지 않습니다 찾을 수 있었던 것은 개미 스크립트를 추가하여 라이브러리 소스를 압축하고 대상 프로젝트에 복사하는 것입니다.하지만이 방법으로 디버깅하는 것은 고통 스럽습니다. 라이브러리 코드를 사용할 수 없기 때문입니다.

    의견이 있으십니까?

    말할 필요도없이, 라이브러리 코드 AppEngine에있는 업로드 과정에 포함되어야한다 고려해야 제안 된 솔루션 ...

    감사

  • 답변

    4

    dev_appserver 및 생산 환경은하지 않습니다 프로젝트 또는 라이브러리에 대한 개념이 있으므로 필요한 모든 라이브러리가 응용 프로그램의 루트 아래에 있도록 응용 프로그램을 구성해야합니다. 이를 수행하는 가장 쉬운 방법은 대개 하위 디렉토리 또는 최악의 경우 복사하여 (또는 버전 제어를 사용하여 하위 저장소로) 심볼릭 링크하는 것입니다.

    IDE에서 작업에 매핑하는 방법은 IDE에 달려 있지만 일반적으로 응용 프로그램을 디스크에서 필요로 할 때 구조화하는 것이 가장 쉽습니다. 뒤로부터 IDE를 설정하여 원하는대로 설정할 수 있습니다 그것.

    +0

    감사합니다. Nick - 코드를 src 폴더로 이동 한 다음 별도의 svn 저장소에 추가하여 조언을 따르십시오. 이제는 다른 프로젝트로 가져 오기만하면됩니다. – Antonio

    관련 문제