2008-09-24 3 views
1

거의 모든 Python 웹 프레임 워크에는 wsgi 응용 프로그램을 실행하는 간단한 서버가 있으며 소스가 변경 될 때마다 가져온 모듈이 자동으로 다시로드됩니다. 코드를보고 어떻게 완료되었는지 확인할 수는 있지만 시간이 좀 걸릴 수 있으며 호기심을 묻는 것입니다. 누구나 이것이 어떻게 구현되는지 알 수 있습니까?가져온 모든 파이썬 모듈의 코드 변경 확인

답변

2

reloader 메커니즘 중 하나 (werkzeug의 메커니즘)의 저자로서 나는 작동하지 않는다고 말할 수 있습니다. 모든 재 로더가 수행하는 작업은 모니터 스레드가 파일 시스템에서 하나의 모듈이 변경되었음을 감지하면 한 번만 분기하고 하위 프로세스를 다시 시작하는 것입니다.

인라인 reload() 다시로드 된 모듈에 대한 참조가 업데이트되지 않기 때문에 작동하지 않습니다.

1

reload()가 작동하지 않습니다. "다시로드"는 일반적으로 분기를 통해 구현됩니다.

"실제"reload() 구현은 매우 어렵고 가장 심각한 시도 인 경우에도 twisted.python.rebuild은 완벽하지 않습니다.

관련 문제