그누보드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
감사합니다.
'IT기술' 카테고리의 다른 글
| 그누보드6 검색 시 결과 없음 문제 (0) | 2025.12.11 |
|---|---|
| 그누보드6 관리자페이지 기본환경설정 internal server error 해결 (0) | 2025.12.11 |
| GitHub 커밋&푸쉬 CMD 사용법 (0) | 2023.08.18 |
| JAVA_HOME 환경변수 설정 (0) | 2022.03.24 |
| [Linux] Ngrinder 설치 및 테스트 Guide (0) | 2022.02.23 |