IT기술
그누보드6 구동 시 TypeError 발생 관련 수정 코드
POST IT
2025. 11. 14. 12:52
그누보드6 구동 시 TypeError가 발생하는 경우가 있습니다.
기존 코드
def _read_file(self, file_name: str | Path) -> dict[str, str]:
Starlette의 Config 클래스는 _read_file() 을 이렇게 호출합니다.
self._read_file(env_file, encoding)
즉 인자를 2개 넘깁니다.
- file (파일 경로)
- encoding (문자열 또는 None)
그런데 현재 코드에서는 file_name 하나만 받도록 되어 있기 때문에 TypeError가 발생한 것입니다.
그럴 경우 g6/lib/slowapi/__init__.py 파일 내부의 코드를
class CustomConfig(Config):
""".env 파일을 utf-8로 읽기 위한 CustomConfig 클래스"""
def _read_file(self, file_name: str | Path, encoding: str | None = None) -> dict[str, str]:
file_values: dict[str, str] = {}
encoding = encoding or "utf-8"
with open(file_name, encoding=encoding) as input_file:
for line in input_file.readlines():
line = line.strip()
if "=" in line and not line.startswith("#"):
key, value = line.split("=", 1)
key = key.strip()
value = value.strip().strip("\"'")
file_values[key] = value
return file_values
위와 같이 수정하시고 g6 경로에서 다시 실행 해보시면 정상적으로 실행 되는 것을 확인할 수 있습니다.
만일 수정 후에도 정상적으로 실행이 되지 않는 경우 Python의 클래스 내부 들여쓰기는 반드시 4칸(space 4개) 로 되어야 하기 때문에
고려할 사항은 아래와 같으며
- class 다음 줄은 들여쓰기 4칸
- 함수 내부는 들여쓰기 8칸
가능한 제가 위에 올린 코드를 복사하여 그대로 들여쓰기로 넣는 것을 권장 드립니다.
아래 그누보드 버그 게시판에도 올려뒀습니다
https://sir.kr/g6_bug/17?autosave_clear=1
감사합니다.