2008-09-29 6 views
11

PyDev를 사용하여 Eclipse 설치를하고 스크립트/응용 프로그램을 디버그하는 것을 좋아합니다. 방금 Pylons로 놀기 시작했고 이클립스를 통해 초보자 서버를 시작할 수있는 방법이 있는지 궁금해서 웹 애플리케이션을 디버깅 할 수 있습니까?Eclipse를 통해 Pylons 응용 프로그램 디버그

답변

10

새로운 시작 구성 (파이썬 실행)

홈페이지 만들기 탭을

사용 paster-script.py 주요 모듈은 (당신은 당신의 파이썬 설치 디렉토리의 스크립트 하위 디렉토리에서 찾을 수)

PYTHONPATH 영역에

인수 012을 응용 프로그램의 루트 폴더를 추가하는 것을 잊지 마세요기본 디렉토리를 루트 폴더로 설정하십시오. 프로그램 인수 "development.ini 봉사"를 사용 (또는 앱 "디버깅하는 데 사용하는 무엇이든)

일반 탭을

확인이

2

yanjost가있다 백그라운드에서 콘솔 출시를 할당으로

그냥 오른쪽에 --reload 옵션을 사용하지 말아야한다는 것을 추가하기를 원한다. 그러면 디버거가 제대로 부착되지 않고 중단 점이 작동하지 않게된다.

1

리눅스에서는/usr/bin/paster 또는/usr/local/bin/paster를 붙여 넣기 스크립트와 인자에 대해 다음과 같이합니다 : $ {workspace_loc} $ {project_path} /development.ini

2

인수 탭에서 'Working directory'를 기본값을 사용하지 않도록 변경하여 --reload 작업을 수행 할 수있었습니다 (즉, development.ini가 저장된 '기타'-> 파일 시스템 -> 'Pylons의 루트'응용 프로그램을 선택하십시오.

1

나는 또한이 작업을 마침내 얻었다. 나는 virtualenv 대신 buildout을 사용하여 파일런 (instructions at : http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout)을 설치 했으므로, 위의 지시 사항은 경로가 변경 될 때까지 약간 변경해야했습니다.

는 "메인 모듈"를 위해 본, 내가 사용

${workspace_loc:myeclipseprojectname/bin/paster} 

(추가 --reload 나를 위해 작동하지 중단 점을했고, 나는이 몇 번 테스트)

-for "프로그램 인수 "내가 사용 : -for

serve ${workspace_loc:myeclipseprojectname/mypylonsprojectname/development.ini} 

"작업 디렉토리, 기타 : "내가 사용

${workspace_loc:myeclipseprojectname/mypylonsprojectname} 

위에서 언급 한 것처럼 "공용 탭"에서 "콘솔 할당 확인 후 백그라운드에서 실행"

- 시도하기 전에 중단 점을 설정해야합니다.

6

오히려 paster를 얻기 위해 프로젝트의 작업 공간에서 파이썬 설치를 포함하지 않는 게 좋을 경우 같은 순수 파이썬 드라이버를 만들 수 있습니다/디버그를

#!/usr/bin/env python 

from paste.script.serve import ServeCommand 

ServeCommand("serve").run(["development.ini"]) 

를 ... 실행이 이클립스한다.

참고 :이 옵션은 --reload 옵션을 사용하지 않고 실행되므로 핫 전개 (예 : 변경 사항을 보려면 서버를 다시로드해야 함)가 필요하지 않습니다. 또는 --reload 옵션을 추가하여 핫 전개를 할 수 있지만 Pydev는 중단 점에서 멈추지 않습니다.

ServeCommand("serve").run(["--reload", "development.ini"]) 
+0

이것은 또한 Pyramid 앱에 이상적입니다. – Seth

0

이 정말 이클립스에서 작업을 수행하는 방법에 대한 질문에 대답하지 않습니다 ... 당신의 케이크를 가지고 너무 먹을 수 없습니다. 하지만 난 좋은 그래픽 파이썬 디버거 (당신은 easy_install winpdb와 함께 설치할 수 있습니다) winpdb와 paster 서버를 디버깅했습니다.

그냥 서버 예컨대 :

winpdb /usr/local/bin/paster serve development.ini 

를 시작하고 실행 버튼을 클릭합니다.

웨인이 말한대로 이 아닌 --reload 옵션을 사용해야합니다. 적어도 forked 프로세스 디버거를 입력해야 할 때 (다른 프로세스를 입력하면 "fork parent"및 "fork child"디버거 명령으로 제어 할 수 있음) 선택할 때 실제 webapp에 연결하는 방법을 찾을 수 없었습니다.

+0

필자의 경우 repoze.profile을 사용하는 경우, paster가 winpdb로 실행될 때 너무 깊은 재귀가 발생한다는 것을 알게되었습니다. –