2014-06-22 4 views
0

간단한 Flask 웹 응용 프로그램에서 작업하고 있습니다. Eclipse/Pydev를 사용합니다. 앱에서 작업 할 때 코드 변경으로 인해이 앱을 자주 다시 시작해야합니다. 그리고 그것이 문제입니다. 응용 프로그램을 실행하면 내 로컬 호스트에서 프레임을 볼 수 있습니다. 하지만이 응용 프로그램을 닫으 려 할 때 빨간색 사각형을 클릭하면 이클립스에서 응용 프로그램을 중지해야합니다. 때로는 (종종) 응용 프로그램의 이전 버전이 계속 실행되어 새 버전을 테스트 할 수 없습니다. 이 경우 도움이되는 유일한 작업은 Windows 작업 관리자에서 모든 프로세스를 강제 종료하는 것입니다.Python/Flask : 닫기 후 응용 프로그램이 실행 중입니다.

이 문제를 관리하는 방법에 대해 조언을 해 주시겠습니까? 미리 감사드립니다.

EDIT : 아마도 도움이됩니다. 여러 번 앱을 두 번 실행해야합니다. 그렇지 않으면 연결할 수 없습니다.

+1

응용 프로그램에서'app.debug = True'를 설정하고 있습니까? [플라스크 디버그 모드] (http://flask.pocoo.org/docs/quickstart/#debug-mode)를 보면 코드 변경에 따라 자동으로 애플리케이션이 다시로드됩니다. 따라서 _once_ 응용 프로그램 만 실행하면됩니다. 또한 "디버그 모드"(Eclipse에서 이에 상응하는 것이 무엇이든)로 실행해서는 안됩니다. 대신 일반 응용 프로그램으로 실행하십시오. 디버그 모드에서 실행중인 경우 인터럽트로 인해 스레드가 중지되지 않고 차단됩니다. 너 뭐하는거야? –

+0

@BurhanKhalid 예, 디버그 모드가 설정되었습니다. 디버그 모드가 없으면 더 잘 작동한다고 생각하지만 가끔은 문제가 있습니다. –

답변

0

나에게는 매우 비슷한 일이 일어났습니다. 나는 Flask보다는 CherryPy를 사용하고 있었지만, 내 솔루션은 여전히 ​​당신을 위해 일할 수도 있습니다. 종종 브라우저는 웹 페이지를 로컬에 저장하므로 웹 사이트를 방문 할 때마다 다시 다운로드 할 필요가 없습니다. 이를 캐싱이라고하며 일반 웹 사용자에게는 매우 유용하지만 앱 개발자에게는 큰 고통이 될 수 있습니다. 새 버전의 애플리케이션을 자주 생성하는 경우 브라우저에 최신 버전 대신 캐시 된 이전 버전의 앱이 표시 될 수 있습니다. 응용 프로그램을 다시 시작할 때마다 캐시를 ​​지우거나 캐시를 완전히 비활성화하는 것이 좋습니다.

+0

캐시를 지우려고했으나 문제가 계속 발생했습니다. 그래서 Internet Explorer (Chrome을 사용)를 시작하고 http://127.0.0.1:5000/를 입력하려고 시도했지만 응용 프로그램이 실행되고 있지만 Eclipse에서 중지했습니다. 아마도 캐시 문제가 아닙니다. ... –

1

이것은 실제로 PyDev의 최신 버전에서 발생하지 않아야합니다 (예 : PyDev 3.4.1 : http://pydev.org/history_pydev.html부터 PyDev는 주 프로세스의 모든 하위 프로세스를 종료해야 함).

그래서 어떤 PyDev 버전을 사용하고 있는지 확인할 수 있습니까?

최신 버전의 PyDev 사용자는 Ctrl + Shift + F9를 사용하여 기본적으로 종료/다시 시작을 할 수 있습니다.

플라스크를 다루는 동안 use_reloader = True로 설정하지 않고 코드 변경시 코드를 자동으로 다시로드 할 수 있어야합니다.

예 : 실제로 테스트하지는 않았지만 설명서에서 해당 실행에 대한 재로드 플래그 (use_reloader = True)를 설정할 수 있다고 말합니다. PyDev도 디버깅 할 수 있어야합니다. 나중에 해당 영역에있는 PyDev 문서를보고 개선하십시오).