• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

파이썬 코드를 저장했을때 자동으로 서버가 재실행 되지 않습니다..

23.04.27 17:16 작성 조회수 745

0

settings 를 common, dev, prod 3개로 만들고 부터 안되는데 무슨 문제일까요

답변 3

·

답변을 작성해보세요.

0

추가로 확인 부탁드립니다.

  1. settings를 dev, prod로 분기 전에는 저장 직후에, 개발서버가 재시작했었나요?

  2. 그런데 settings를 dev 와 prod 로 분기 후에, 저장 직후에 개발서버가 재시작되지 않고, 가만히 몇 분 후에 재시작이 되었나요? // 몇 분 후라는 것은 어떻게 인지/확인하셨나요?

  3. manage.py 내 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "...") 의 값은 어떻게 되나요?

0

보내주신 영상을 확인해봤습니다.

영상에서는 소스코드 저장에 대한 부분이 드러나지 않는 데요. 소스코드 변경 후에 Cmd-S 키를 눌러 파일을 하신 것이 맞는 지요?

장고 프로젝트 내의 파이썬 소스코드가 변경되고 저장되면, 개발서버가 재시작됩니다. 개발서버가 재시작되면, 아래의 개발서버 터미널에서 개발서버 재시작 메세지가 뜹니다. => 가장 단순하지만, 가장 핵심적인 포인트입니다. 이를 확인하는 데에 오류가 있으셨을 수 있습니다.

image

개발서버가 재시작되면, 아래와 같이 개발서버를 처음 띄우실 때의 메세지가 떠야합니다.

image

현재의 상황은 2가지 경우의 수 밖에 없지 않을까 생각이 듭니다.

  1. 소스코드를 저장하셨다고 생각하셨지만, 실제로는 소스코드가 저장되지 않았거나 <= 유력

  2. 개발서버를 띄운 프로젝트가 아닌, 다른 경로의 소스코드를 수정하셨거나

오류는 당연하다고 생각하셨던 부분에 있을 확률이 가장 높습니다.

아래 순서로 다시 영상을 촬영해보시겠어요? 그리고 본인의 음성으로 현재 진행상황을 설명을 해주시겠어요?

  1. 윈도우 탐색기로 현재 프로젝트 경로를 보여주세요.

  2. 파이참으로 그 프로젝트 경로를 천천히 열어주세요. (영상에 담길 수 있도록)

  3. 외부 터미널에서 그 프로젝트 경로 안으로 들어가신 후에, python manage.py runserver 명령으로 개발 서버를 띄워주세요. 화면 왼쪽에 파이참을, 화면 오른쪽에 터미널을 배치해주세요.

  4. 그 프로젝트 내 urls.py 에서 주석 하나를 지우시고, 마우스로 파이참 File 메뉴 -> Save all 메뉴를 선택해주세요.

  5. 개발서버 터미널 창에서 개발서버의 재시작 여부를 확인합니다.

혹시 그래도 이슈가 동일하게 발생한다면, 소스코드에는 뭔가 이슈가 없을 거 같긴 한데, 현재 프로젝트 폴더를 zip으로 압축해서 me@askcompany.kr 메일로 보내주시면, 그 프로젝트를 제가 다시 한 번 실행해보겠습니다.


논외로 bootstrap-tweaks.css 파일의 URL 요청 경로가 왜 /Users 부터 시작하는 지 이상하군요. "GET /static/rest_framework/css/bootstrap-tweaks.css HTTP/1.1" 과 같은 보다 짧은 형태가 되어야할 듯 한데 말이죠.

image

화이팅입니다. :-)

0

안녕하세요.

장고 프로젝트 구동 시에는 settings 위치가 중요하며, settings 위치를 장고 프로젝트에게 알려주어야 합니다.

askcompany/settings.py 파일의 위치는 askcompany.settings 가 됩니다.

그런데, settings 파일을 하위 경로로 세분화를 하시면, 그 경로는

이 위치는 manage.py 파일과 askcompany/wsgi.py 파일에 보시면 DJANGO_SETTINGS_MODULE 환경변수에 대한 디폴트 설정을 하는 곳이 있습니다. 이 디폴트 설정은 askcompany.settings 로 되어있을 것입니다.

"askcompany.settings" 라면, askcompany/settings/__init__.py 파일을 읽어야할텐데, 이 파일조차 없으니, 현재의 장고 프로젝트는 현 프로젝트의 설정내역을 읽어내지 못하니까 서버 구동에 실패하게 되는 것입니다.

 

방법 1) manage.py 명령 시에 settings 위치를 지정해주는 방법이 있습니다. 아래와 같이 지정해서 서버를 실행해보시겠어요? settings 파일을 정상적으로 수정하셨다면 서버가 뜰 것입니다.

python manage.py runserver --settings=askcompany.settings.dev

방법 2) manage.py 파일과 askcompany/wsgi.py 파일의 디폴트 위치에는 이제 settings 내역이 없으니, 이 디폴트 값을 수정하는 방법이 있습니다. "askcompany.settings" 를 "askcompany.settings.dev" 로 변경해보실 수 있습니다.

 

확인해보시고, 댓글 남겨주세요.

화이팅입니다. :-)

kth050213님의 프로필

kth050213

질문자

2023.05.01

서버가 실행은 되는데 변경후 저장했을때 자동으로 리로드가 안됩니다...ㅠㅠ

다시보니 리로드가 저장후 몇 분후에 일어납니다..

서버 환경에서 소스코드가 저장된 디스크 하드웨어가 어떻게 되나요? 하드웨어에서 디스크 I/O 속도가 너무 느려서일 수도 있구요. (네트워크 디스크 등)

서비스가 시작될때 시작되는 모듈들이 너무 많거나 무거워서 일 수도 있습니다. (ML 모델 로딩 등)

혹은 v3 백신 프로그램이나 Microsoft Defender의 실시간 검사로 인해, 파일 I/O가 느릴 수도 있구요.

만약 그렇다면, 서버의 CPU 성능을 높이거나 소스코드 프로그램 최적화가 필요할 수도 있습니다.

kth050213님의 프로필

kth050213

질문자

2023.05.01

m1 pro 맥북이고 그냥 강의 영상보고 따라쳐서 딱히 무겁지도 않는데.. 계속 껐다가 켰다하는게 너무 번거로워서요..ㅠㅠ

혹시 버전이랑 관련이 있을까요?? 저는 장고 최신버전으로 개발하고 있습니다.!!

저도 m1 pro로 개발을 하고 있습니다만, 강의환경에서 저장후 몇 분후에 재시작이 된다는 것은 맥/윈도우/리눅스 불문하고 너무 이상하네요.

혹시 저장을 하셨다고 생각하시지만, 실제 저장을 몇 분 후에 하신 것은 아닐까요.

흠. 제가 살펴볼 수 있는 단서가 너무 없는데요. 현 문제의 과정을 영상으로 찍어서 보여주실 수 있나요?

kth050213님의 프로필

kth050213

질문자

2023.05.01

영상을 어디로 보낼까요??


구글드라이브에 public으로 공유하신 후에, 그 공유주소를 여기에 공유해주세요.

kth050213님의 프로필

kth050213

질문자

2023.05.01

https://drive.google.com/file/d/1TnDcLmv_jidBUGmzyVuWwzAswJV5PG4j/view?usp=sharing

여기서 admin url을 바꿨을때 재시작을 직접해야 적용되는걸 볼수 있어요
프로잭트 바로 시작했을때는 문제없는데 좀 따라하다보니 저렇게 됩니다..