-
반응형
서론
기존 requests 라이브러리 사용해서 보내던 통신 프로그램이 있었는데 이걸 비동기로 로직으로 변경을 해서 속도를 더욱 빠르게 업그레이드 하려고 했다.
해서 여러 비동기 라이브러리중에서 aiosonic 라이브러리를 선택을 했는데
선택한 이유는 단순하게 제일 속도가 빠르기 때문 이였다.
다만 해당 라이브러리의 HTTPClient 클래스 객체를 만들어서 사용던 중 "too many values to unpack" 에러를 만나게 된다.
트러블 슈팅
too many values to unpack 오류는 사실 되게 간단한 오류이다.
문구 그대로 해석해도 받아야될 인자 보다 더 많은 수를 넣었다던가 아니면 결과 return 값의 수가 맞지 않다던가 하는 그런 오류 이다.
근데 아무리 코드를 뜯어봐도 그렇게 되어 있는 구문은 없었다.
ide에서 잡아주는 코드 라인을 찾아봐도 해당 구문, 메소드에는 아무런 문제가 없어 보였다.
해서 아무리 검색을 해봐도 인터넷 상에 있는 모든 정보는 구문 그대로 해석한 에러 해결 방법 이였다.
그래서 내 경우엔 아무런 도움이 되지 않았다. 이 문제 때문에 몇시간을 버렸는지 모르겠다 ㅡㅡ
결과를 먼저 얘기 하자면 문제는 해결 했다.
내가 찾아낸 문제는 aiosonic 라이브러리 자체에 문제가 있었다.
문제 해결 과정
문제 해결을 위해 코드 작성 단계를 거꾸로 밟아 나아갔다 ..
내가 작성한 코드 순서를 머리속과 코드를 보면서 역으로 거꾸로 짚어 나아갔다.
분명 내가 잘못 코드를 작성 했으니까 에러가 생겼겠지 라는 생각을 가지고 계속 해서 찾아 나아갔다.
근데 아무리 뒤져봐도 문제가 없는것이다. 애초에 막 코드 큰 틀을 짜던 단계라서 코드가 복잡하거나 여러 메소드가 엮인 상황도 아니였다.
그러다가 문득 스쳐 지나가는 코드가 있었다.
쿠키 다루는 코드 작성하다가 오류가 발생 했었고 혹시나 싶어서 해당 코드를 확인 했다.
client = aiosonic.HTTPClient(handle_cookies=True)
이 객체를 생성하면서 handle_cookies=True 이 옵션을 주면서 오류가 생겨 났는데
해당 인자를 없애니까 에러가 사라졌다.
하지만 해당 인자를 넣어야 해당 객체에서 쿠키를 다루기 편한데 해당 인자를 없애면 쿠키를 수동으로 관리 해야 했다.
해당 옵션을 True로 줘서 객체를 생성하면 비동기 통신에서 쿠키를 자동으로 관리를 해주는데
"too many values to unpack" 해당 오류가 발생하는걸로 보아 쿠키 관리하는 방식에서 라이브러리 자체 코드에 문제가 있어 오류를 내보내는거 같다.
예를 들면 쿠키 값을 제대로 관리 못해 여러 값을 뱉어내서 생긴 현상일 수 있다.
결론
나는 당연히 내 코드의 오류라 생각하고 몇 시간을 찾았지만 설마 라이브러리의 문제일줄을 몰랐다.
앞으로는 좀 더 넓은 시야를 가지고 바라봐야겠다.
반응형'트러블슈팅' 카테고리의 다른 글
티스토리 블로그 스킨 보안 - JS, CSS 파일 난독화 (0) 2023.11.23 텔레그램 오류 - No module named 'urllib3.contrib.appengine' (0) 2023.11.04 centos7 MariaDB - can't connect to local mysql server through socket 'var/lib/mysql/mysql.sock' (0) 2023.09.22 Mac os 파이썬 - SSLCertVerificationError (0) 2023.07.23 오즈리포트 - 서버 오류 (1300100051),(1300100053) (0) 2023.02.08