2015-01-21 2 views
0

django 환경을 처음 사용했습니다. 상속 된 프로젝트를 디버깅해야합니다. debug.py 함수는 views.py에 있습니다. x를 함수라고합시다. 제 환경은 redhat, apache, django입니다. pdb를 사용하여 어떻게 디버깅합니까? 튜토리얼을 보았지만 저를 도와 줄 수 없습니다. 내가 계속 "C"를 명중 할 때 django 코드에서 pdb 오류가 발생했습니다.

내가 내 레드햇 명령 줄

python -m pdb /opt/django/projectx/views.py runserver 

를 실행할 것입니다, 내가 코드의 두 번째 줄입니다

ImportError: No module named django.http 

제시하고있어 views.py. 뷰에는 2 개의 함수가 있습니다 (x와 y라고 부르 자). 그러나 함수 x에 도착해야합니다.

답변

2

파이썬은 거의 모든 환경에 설치되지만 각 프로젝트에 필요한 패키지는 다양합니다. 예 : 일부 프로젝트는 Django 버전 1.6에서만 작동하지만 다른 프로젝트는 Django 버전 1.7에서 작동합니다.

이런 이유로 일부 독창적 인 사람이 virtual environments을 만들었습니다. 그리고 이것은 helpful tutorial done on Red Hat입니다.

프로젝트는 가상 환경 내에서 실행될 가능성이 큽니다. 파이썬이 django.http을 가져올 수 없다는 사실은 기본 환경에 장고가 설치되어 있지 않다는 것을 암시합니다.

개발자는 환경 폴더를 다른 위치에 배치합니다. 이전 개발자가 프로젝트 폴더 나 다른 가상 환경이 저장되어있는 다른 장소에 배치했을 수 있습니다.

[name_for_env]/bin/activate과 같은 구조의 폴더 이름을 찾으십시오.

당신은 이것을 활성화 것 :

pip install [name_of_package] 

: 가상 환경에있을 때 deactivate

는, 당신이 누락 된 패키지를 설치할 수 있습니다 source [name_for_env]/bin/activate

은 다음과 비활성화 또는

당신은 또한 PDB를 잘못 사용하고 있습니다. 또한 가져 오기 오류 메시지가 표시됩니다. manage.py으로 서버를 실행해야합니다. 이것은 다양한 Django 설정을 설정하는 데 필요합니다. 그래서 같은 실행을 :

python -m pdb manage.py runserver 

당신은 following this tutorial하여 views.py에 PDB 중단 점에 입력 할 수 있습니다.

+0

작동하는 것으로 보입니다.이제 "C"를 누르면 프로그램이 완료되었다가 다시 시작됩니다. 어떻게 특정 디렉토리에서 view.py를 불러올 수 있습니까? – user2773013

+0

'views.py' 파일은 Django의 MVC 레이아웃의 일부입니다. Django에서 MVT (Model-View-Template)라고 부르는 사람들도 있습니다. 데이터를 기술하고 데이터베이스 테이블을 생성하는 모델은'models.py'에 있습니다. 뷰는'views.py'에 있습니다. 그리고 템플릿은 대개 템플릿 폴더에있는 .html 파일입니다. http 요청을 받고 모든 것을 조정하는 마법은 보통'urls.py'에 있습니다. 'urls.py' 설정 파일을 찾으십시오. 보기를 가리키는 URL 정규식이 있어야합니다. 그런 다음 서버가 실행중인 상태에서 해당 URL을로드하십시오. 예 : 'localhost : 8000/app_name/index /' –

1

pdb를 통해 서버를 시작할 필요가 없습니다. 당신은 단순히 코드에 PDB를 가져오고 설정 당신이 원하는 위치에 중단 점 수

import pdb; pdb.set_trace() 

과 장고는 그 지점에 도달 할 때마다 당신은 콘솔에서 디버거로 덤프됩니다.

관련 문제