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

 

 

감사합니다.