2013-07-18 4 views
1

요즘 프로젝트의 소스 코드를 이해하려고합니다. 나는 모든이 라인까지 잘 작동, 프로젝트, 라인별로 줄을 실행 내가 변수 "명령"을 확인하고이 기능은 또 다른 파이썬 스크립트에 명령을 던져하고 그것을 실행하려고 것을 깨달았다 파이썬에서 subprocess.call()을 디버깅하는 방법은 무엇입니까?

res = subprocess.call(command, env=os.environ) 

하위 프로세스 그래서 Eclipse에서 뛰어 나와 동일한 디렉토리 아래에있는 동안 Terminal을 통해 명령을 실행하려고했습니다. 그럼 난 완전히 내 방향을 잃은
Traceback (most recent call last): 
    File "/home/elderry/Projects/git/tahoe-lafs/support/bin/tahoe", line 6, in <module> 
    from pkg_resources import load_entry_point 
    File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2850, in <module> 
    working_set.require(__requires__) 
    File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 696, in require 
    needed = self.resolve(parse_requirements(requirements)) 
    File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 594, in resolve 
    raise DistributionNotFound(req) 
pkg_resources.DistributionNotFound: allmydata-tahoe==1.10.0.post27 

이 어디 서브 프로세스가 계속 실행 않았다

지금이 내가 가진 무엇인가? 왜 스크립트는 프로그램에서 잘 작동하지만 터미널에서는 제대로 작동하지 않았습니까? 이 스크립트는 프로젝트에도 포함되어 있기 때문에 Eclipse에서 몇 가지 중단 점을 설정했는데 어떤 것도 잡아 내지 못했다. 하위 프로세스로 디버깅 할 수있는 방법이 있습니까? 하위 프로세스 모듈의 코드 자체를 디버깅 할 수 있습니까?

+0

디버그 란 무엇을 의미합니까? 하위 프로그램을 단계별로 실행 하시겠습니까? 아니면 출력/입력을보고 싶습니까? – User

+0

하위 프로그램을 단계별로보고 싶습니다. – Elderry

답변

2

기본 프로젝트가 PYTHONPAH (sys.path)이됩니다. 프로젝트의 os.environ을보고이 환경에서 두 번째 스크립트를 실행하십시오.

+0

위의 코드가 PYTHONPATH를 수정했기 때문에 이것이 이유 일 수 있습니다. 하지만 어떻게이 환경에서 스크립트를 실행할 수 있습니까? .bashrc에 설정 하시겠습니까? – Elderry

+0

.bashrc로 설정하면 모든 것이 잘 동작합니다. – Elderry

+1

일반적으로 수정 된 PYTHONPATH로 실행중인 스크립트로 충분합니다. 이 명령으로 할 수있다.'PYTHONPATH = <의도 된 python_ 경로> python script.py' – twil

관련 문제