본문 바로가기

Python

[python] ERROR: ApiError(406, 'Content-Type header [application/vnd.elasticsearch+x-ndjson; compatible-with=8] is not supported' 에러 해결법

반응형

 

 

기존 잘 동작하던 python elasticsearch pip 모듈에서 갑자기 아래와 같은 에러를 뱉어내기 시작했다.

Elasticsearch index() ERROR: ApiError(406, 'Content-Type header [application/vnd.elasticsearch+x-ndjson; compatible-with=8] is not supported', 'Content-Type header [application/vnd.elasticsearch+x-ndjson; compatible-with=8] is not supported')

 

원인을 알고보니 최근 다른 유저가 파이썬 시스템 버전의 elasicsearch pip 버전을 8 버전대로 올려서 생긴 문제였다. 현재 사용중인 elasticsearch는 7버전대를 사용중인데, pip 모듈이 8버전을 지원해서 생긴 문제였다.

 

그래서 위 문제는 단순히 elasticsearch pip 모듈을 7버전 대로만 변경해주면 된다. 다만 시스템 영역의 파이썬을 사용하는 건 로컬 머신 상에서 수행되는 다른 파이썬 프로젝트에도 영향을 미칠 수 있어서 가상화  환경을  설치하였다.

 

해결방법

# 가상환경 생성
$ python3 -m venv venv


# 가상 환경 실행
$. venv/bin/activate

# elasticsearch 버전 7.5.1로 지정하여 설치                
(venv)$ pip install elasticsearch==7.5.1

# 파이썬 실행
(venv)$ python3 스크립트

아무튼 핵심은 운영하고 있는 elasticsearch 버전에 맞는 python elasticsearch 모듈을 써야 한다는 것이다. 

반응형