파이썬 기반 웹 응용 프로그램의 개발 시간을 줄이기 위해 최근에 수정 한 모듈에 reload()를 사용하려고합니다. reload()는 최근 수정 된 모듈을 나열하는 전용 웹 페이지 (웹 응용 프로그램 개발 버전의 일부)를 통해 발생합니다 (py 파일의 수정 된 타임 스탬프는 해당 pyc 파일보다 나중입니다). 모듈의 전체 목록은 sys.modules에서 가져옵니다 (그리고 필자는 패키지에 포함 된 모듈에만 초점을 맞추기 위해 목록을 필터링합니다).파이썬의 특정 모듈에 의존하는 모듈 목록을 찾는 방법
개별 파이썬 파일을 다시로드하는 것이 경우에 따라 작동하는 것으로 보이고 다른 경우에는 작동하지 않는 것 같습니다. 나는 수정 된 모듈에 의존하는 모든 모듈을 다시로드해야하며 재로드가 적절한 순서로 이루어져야한다고 생각합니다.
특정 모듈에서 가져온 모듈 목록을 가져 오는 방법을 찾고 있습니다. 파이썬에서 이러한 종류의 인트로 스펙 션을 수행 할 수있는 방법이 있습니까?
내 접근 방식이 100 % 보장되지 않을 수도 있고 가장 안전한 방법은 모든 것을 다시로드하는 것이지만 대부분의 경우 빠른 접근 방식이 효과적이면 개발 목적으로는 충분할 것이라고 생각합니다. 장고 autoreloader
@Glenn 메이 나드, 고맙습니다에 대한 의견을
이응답, 나는 장고의 autoreloader에 대해 읽어했다. 내 웹 응용 프로그램은 Zope 3을 기반으로하고 패키지의 양과 ZCML 기반의 초기화로 인해 데이터베이스 크기가 더 커지면 전체 재시작이 약 10 초에서 30 초 또는 그 이상 걸립니다. 다시 시작하는 동안이 시간을 절약하려고합니다. 내가 많은 변화를 겪었다 고 느낄 때, 나는 보통 전체 재시작을 선호하지만, 더 자주 나는 너무 많은 시간을 보내고 싶지 않은 곳에서 몇 줄의 선을 바꾸고있다. 개발 설정은 프로덕션 설정과 완전히 독립적이며, 일반적으로 다시로드 할 때 문제가 발생하면 응용 프로그램 페이지에서 비논리적 인 정보가 표시되거나 예외가 발생하기 시작하므로 명확 해집니다. 선택적 재 장전이 효과가 있는지 아닌지에 대해 매우 관심이 많습니다.
당신은 이미 원하는 것을 이안 Bicking의 붙여 넣기 장전 모듈, 한 번 봐 걸릴 수도 있습니다
Django의 자동 로더와 같이 소스 파일을 수정할 때 백엔드를 완전히 다시 실행하는 것이 훨씬 안전합니다. 나는 어떤 불리한 점도 모른다. 파일을 수정하면 모든 내용이 자동으로 두 번째 또는 두 번째로 다시로드됩니다. "대부분의"경우에만 효과가있는 것은 개발에 매우 나쁜 것입니다. 당신은 단지 길 아래로 고통스럽게 물지 않도록 요구하고 있습니다. –
중복 된 질문으로 인해 여기서 다시 살펴보고 "zope을 사용할 때 재로드 시간을 최소화하는 방법"은 sauna.reload now (2013) – jsbueno