일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 우아한 테크코스 2차 합격
- EC2
- 재귀함수가 뭔가요
- 2차 코딩테스트
- classmethod
- Spring
- springboot 3.0.0
- AWS
- javascript
- METACLASS
- python all testcode
- S3
- github
- 프로그래머스
- TypeError: 'property' object is not iterable
- docker-compose
- 갓재석
- MySQL server on 'db' (115)
- 우아한테크코스 2차
- classproperty
- docker
- DB
- OperationalError
- depends_on
- AWS S3
- 코딩테스트
- github skyline
- Django
- depends
- python
Archives
hanbin.dev
[겪었던 오류] Python @lru_cache TypeError 본문
오류 내용
윈도우 환경에서 실행할 때는 잘 돌아갔는데 Docker에 올려 리눅스 환경에서 실행할 때 위와 같은 에러가 발생했다.
우선 해결 방법은 maxsize를 지정해 주면 된다.ex) @lru_cache(maxsize=128)
왜 이러지?
찾아봤는데 윈도우와 리눅스 환경의 차이는 아니고 파이썬 버전에 차이가 있었다.
Python 3.8 의 517번째줄 주석을 보면 "user_fuction 이 maxsize 인수로 직접적으로 전달되었다." 라는 말이 있다.
Python 3.8에서는 데코레이터의 wrap function이 maxsize로 전달되어 버렸을 때의 데이터 처리 과정이 있지만 Python 3.7에는 존재하지 않는다.
그렇기 때문에 maxsize를 지정해 주지 않으면 wrap function이 maxsize로 전달되어 버려 예외가 일어나는 것이다.