2011-01-25 9 views
3

Eclipse (3.5.2) PyDev 모듈 (1.6.4) 및 Python (2.6.5)을 사용하여 Twisted Application (10.0.0)을 디버그하고 싶습니다.PyDev에서 Twisted 응용 프로그램 실행

C : \ python26 \ 파이썬 C : \ python26 \ 스크립트 \ twistd.py -NY mytwistedapp.py

달성하기 위해이 명령 줄에서 응용 프로그램을 실행하려면 나는 다음을 지정합니다 PyDev를 사용하여 새로운 PyDev 프로젝트를 만들고 mytwistedapp.py와 twistd.py를 가져 왔습니다. 프로젝트의 실행 구성에서 나는 c : \ python26 \ scripts \ twistd.py를 주 모듈로 지정했다. Run -> Debug Configurations를 선택하면 매개 변수가없는 twistd.py가 실행됩니다. 실행 인수 (-ny mytwistedapp.py)에 프로그램 인수를 추가하려고하면 twistd.py 대신 PyDev 디버거에서 처리됩니다. 두 가지 질문 :

  1. twistd.py를 주 모듈로 올바르게 지정하고 있습니까?
  2. 그렇다면 어떻게 twistd.py를 mytwistedapp.py (-ny mytwistedapp.py)를 실행하는 데 필요한 매개 변수로 전달할 수 있습니까?

답변

3

먼저이 문제에 대한 친절하고 정중 한 지원에 감사드립니다.

Eclipse의 PyDev 모듈을 통해 꼬인 응용 프로그램을 실행하는 열쇠는 실행 구성에서 twistd.py를 주 모듈로 정의하는 것입니다. 다음 단계를 사용할 수 있습니다 :

이 지침은 시스템에서 트위스트 응용 프로그램을 이미 실행할 수 있다고 가정합니다. 즉, zope 및 twisted를 설치 한 것입니다. 예를 들어, 다음은 이미 당신을 위해 작동 :

파이썬 twistd.py의 mytwistapp.tac

이 지침은 또한 이미 설치 및 PYTHONPATH의 정의를 포함하여, 이클립스를 PyDev를 구성했다고 가정 . 1. Window -> Preferences -> PyDev -> Interpreter (Python) 으로 이동하십시오. 2. Libraries 탭 (System PYTHONPATH)에서 System Libs에 이미 Python 설치 위치 (예 : c : \ python26, c : python26 \ dlls \, c : \ python26 \ lib 등). 3. Zope egg와 Twisted 폴더를 System libs에 추가하십시오. 예 : c : \ python26 \ lib \ site-packages \ twisted 및 c : \ python26 \ lib \ site-packages \ zope.interfaces-3.6.1-py2.6-win32.egg

새 Pydev 만들기 프로젝트

  1. (예를 들어,의 Myproj) 새로운의 PyDev 프로젝트
  2. 이 다양한 트위스트 응용 프로그램 파일
  3. 을 가져 만들기 * 프로젝트 *에 twistd.py를 추가합니다. 파일 복사를 내 프로젝트에 추가하는 대신 기존 파일 (파일 -> 새로 작성 -> 파일 -> 고급 -> "파일 시스템의 파일에 링크"-> c : \ python26 \ scripts \ twistd)에 링크했습니다. py). 이 기능은 twistd.py를 사용하여 Eclipse 내에서 애플리케이션을 실행하는 데 중요합니다.

이제 프로젝트가 설정되었으므로 새로운 구성 실행을 만듭니다.

  1. 실행 -> 실행 구성
  2. 를 사용하여 메인 탭
    • 이름에서 다음 값 : 트위스트 (또는 무엇이든)
    • 프로젝트 :의 Myproj
    • 메인 모듈 : $ {workspace_loc :의 Myproj /twistd.py}
  3. 인수 탭에서 다음 값을 사용하십시오.
    • 프로그램 인수 : -NY $ {workspace_loc :의 Myproj/mytwistapp.tac}

그리고 그건! 핵심은 twistd.py를 메인 모듈로 임포트하는 것으로, 명령 행에서하는 것처럼 프로그램 인수를 twsttd.py로 전달할 수 있습니다.