Post

[쉽길] 로컬 개발 환경 설정 중 DJANGO_SECRET_KEY 에러 해결

Django 로컬 개발 환경 세팅 중 발생한 환경 변수(Secret Key) 설정 오류의 원인을 분석하고 해결하는 과정을 다룹니다.

[쉽길] 로컬 개발 환경 설정 중 DJANGO_SECRET_KEY 에러 해결

로컬 서버 개발환경 세팅하는 과정에서 오류가 발생했습니다.

실행 과정

  1. 가상환경 설정
  2. requirements.txt 패키지 다운
  3. .env 파일 설정
  4. socialapp 설정 «« 여기서 에러 발생
  5. db 업로드
  6. 로컬 서버 실행

CIL 코드

python manage.py apply_socialapp --settings=config.settings.local

에러 메세지

KeyError: 'DJANGO_SECRET_KEY' django.core.exceptions.ImproperlyConfigured: Set the DJANGO_SECRET_KEY environment variable

요약하자면, ‘DJANGO_SECRET_KEY를 찾지 못했다’

제가 생각한 이유(가설)로는 1. .env의 SECRET_KEY 변수명과 settings/base.py의 SECRET_KEY = env("DJANGO_SECRET_KEY") 변수명이 일치하지 않아서 2. SECRET KEY에 문제가 생겨서

아무래도 settings/base.py를 수정하는 과정에서 어긋난 것 같습니다.

(참고) 가장 마지막으로 로컬 서버 실행했을 때가 2025-10-22 입니다.

👍🏻 오류 해결

  1. .env에서 변수명 변경 SECRET_KEYDJANGO_SECRET_KEY
  2. settings/local.py 수정
1
2
3
4
5
6
# settings/local.py
# 아래 두 줄 삭제
	# settings/base.py에 env 파일을 불러와 읽는 코드가 이미 있습니다.
	# base.py를 상속받는 local.py에서 중복하여 불러올 필요가 없으므로 삭제합니다.
env_file = os.path.join(BASE_DIR, ".env")
environ.Env.read_env(env_file)

오류 메세지 전문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
$ python manage.py apply_socialapp --settings=config.settings.local

Traceback (most recent call last):

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\environ\environ.py", line 409, in get_value

    value = self.ENVIRON[var_name]

            ~~~~~~~~~~~~^^^^^^^^^^

  File "<frozen os>", line 679, in __getitem__

KeyError: 'DJANGO_SECRET_KEY'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\manage.py", line 23, in <module>

    main()

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\manage.py", line 19, in main

    execute_from_command_line(sys.argv)

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line

    utility.execute()

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\django\core\management\__init__.py", line 436, in execute

    self.fetch_command(subcommand).run_from_argv(self.argv)

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\django\core\management\__init__.py", line 262, in fetch_command

    settings.INSTALLED_APPS

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\django\conf\__init__.py", line 81, in __getattr__   

    self._setup(name)

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\django\conf\__init__.py", line 68, in _setup        

    self._wrapped = Settings(settings_module)

                    ^^^^^^^^^^^^^^^^^^^^^^^^^

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\django\conf\__init__.py", line 166, in __init__     

    mod = importlib.import_module(self.SETTINGS_MODULE)

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "C:\Users\SSAFY\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py", line 126, in import_module

    return _bootstrap._gcd_import(name[level:], package, level)

            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import

  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load

  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked

  File "<frozen importlib._bootstrap_external>", line 940, in exec_module

  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\config\settings\local.py", line 3, in <module>

    from .base import *

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\config\settings\base.py", line 36, in <module>

    SECRET_KEY = env("DJANGO_SECRET_KEY") # 운영 환경에서는 반드시 설정되어야 함

                  ^^^^^^^^^^^^^^^^^^^^^^^^

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\environ\environ.py", line 207, in __call__

    return self.get_value(

            ^^^^^^^^^^^^^^^

  File "C:\Users\SSAFY\Desktop\joona\project-wisheasy\venv\Lib\site-packages\environ\environ.py", line 413, in get_value

    raise ImproperlyConfigured(error_msg) from exc

django.core.exceptions.ImproperlyConfigured: Set the DJANGO_SECRET_KEY environment variable
This post is licensed under CC BY 4.0 by the author.