728x90
728x90
python code에서 yaml파일을 load했을 경우 에러 발생
yaml파일을 작성하고 python code로 다음과 같이 load하려고 했다.
import yaml
with open('train.yaml') as f:
yml = yaml.load(f)
그런데 다음과 같은 오류가 발생했다.
TypeError: load() missing 1 required positional argument: 'Loader’
yaml.load()시 TypeError 해결 방법
오류 원인은 PyYAML 버전의 문제였다.
pip list를 치면 현재 install되어 있는 library list들을 볼 수 있는데 PyYAML version이 6.0으로 기존의 쓰던 version보다 높아지면서 발생한 오류였다.
해결 방법1:
만약 현재 사용하는 version을 유지하고 싶을 경우에는 yaml.load()에서 option 하나만 추가해주면 해결된다.
- "Loader=yaml.FullLoader" 추가
# 기존 yaml.load() 코드
yml = yaml.load(f)
# 추가해야 할 option
yml = yaml.load(f, Loader=yaml.FullLoader)
해결 방법2:
두 번째 해결 방법은 PyYAML의 version을 내리는 것이다.
내 경우에는 6.0 version에서는 오류가 발생했고, 5 version으로 내리면서 해결됐다.
# 5.4 version
pip install PyYAML==5.4
# 6.0 version
pip install PyYAML==6
728x90
반응형
'Development > Python' 카테고리의 다른 글
[pillow] 이미지 read했을 때 rotation 현상 (1) | 2023.11.30 |
---|---|
python package를 requirements 텍스트로 저장 (1) | 2023.11.22 |
timm library로 인한 RuntimeError 발생 (0) | 2023.02.10 |
AttributeError: module ‘base64’ has no attribute ‘encodestring‘ (0) | 2023.02.09 |
[python] pip install TypeError: expected str, bytes or os.PathLike object, not int (0) | 2023.01.04 |
댓글