작성
·
734
0
안녕하세요 장고 환경변수 로딩하는 부분, 몇번 돌려보면서 확인했는데 계속 에러가 나오네요. 혹시 어떤게 잘못되었을지 알 수 있을까요.. 도와주세요..
(venv) C:\Users\user\Documents\django_chat>python manage.py shell
Python 3.10.9 | packaged by Anaconda, Inc. | (main, Mar 1 2023, 18:18:15) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.conf import settings
>>> settings.OPENAI_API_KEY
Traceback (most recent call last):
File "C:\Users\user\Documents\django_chat\venv\lib\site-packages\environ\environ.py", line 387, in get_value
value = self.ENVIRON[var_name]
File "C:\Users\user\anaconda3\lib\os.py", line 680, in getitem
raise KeyError(key) from None
KeyError: 'OPENAI_API_KEY'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Users\user\Documents\django_chat\venv\lib\site-packages\django\conf\__init__.py", line 102, in getattr
self._setup(name)
File "C:\Users\user\Documents\django_chat\venv\lib\site-packages\django\conf\__init__.py", line 89, in _setup
self._wrapped = Settings(settings_module)
File "C:\Users\user\Documents\django_chat\venv\lib\site-packages\django\conf\__init__.py", line 217, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Users\user\anaconda3\lib\importlib\__init__.py", line 126, in import_module
return bootstrap.gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in gcdimport
File "<frozen importlib._bootstrap>", line 1027, in findand_load
File "<frozen importlib._bootstrap>", line 1006, in findand_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in loadunlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in callwith_frames_removed
File "C:\Users\user\Documents\django_chat\mysite\settings.py", line 134, in <module>
OPENAI_API_KEY=env.str("OPENAI_API_KEY")
File "C:\Users\user\Documents\django_chat\venv\lib\site-packages\environ\environ.py", line 212, in str
value = self.get_value(var, cast=str, default=default)
File "C:\Users\user\Documents\django_chat\venv\lib\site-packages\environ\environ.py", line 391, in get_value
raise ImproperlyConfigured(error_msg) from exc
django.core.exceptions.ImproperlyConfigured: Set the OPENAI_API_KEY environment variable
>>>
답변 2
0
잘 해결되어서 다행입니다.
BASE_DIR은 manage.py 파일이 있는 프로젝트 ROOT 폴더 경로이구요.
21 라인에서 BASE_DIR 밑에 .env 파일이 있는 것으로 예상했기 때문입니다.
그 경로에 파일이 있다면 파일을 읽어서 환경변수로서 로딩하고, 별 다른 액션을 취하지 않습니다.
다른 경로에 .env 파일이 있어도, 현재 코드에서는 다른 경로의 .env 파일을 로딩하는 코드가 없습니다.
그리고, 참고로 venv 폴더는 가상환경 폴더로서 그 안에는 가상환경 기본 파일 외에 다른 파일들(설정파일 등)을 절대 만들지 않습니다. 몇몇 강의들을 보면 가상환경 폴더 안에서 개발 소스코드를 두는 경우도 있는 데, 좋지 못한 접근입니다.
가상환경 폴더는 그 폴더 자체를 git 버전관리대상에서 제외하는 경우가 대부분입니다.
또 살펴보시고 질문 많이 남겨주세요.
화이팅입니다. :-)
지정 경로에 .env 파일이 없거나, .env 파일을 로딩하는 코드가 settings.py 에 없거나, 경로 지정이 잘 못 되었거나, 그 코드에 오류가 있거나 정도가 있을 수 있습니다.
프로젝트 젠처 코드를 보내주시면 확인해드리겠습니다. :-)