IT&컴퓨터/IT 인터넷

[Langchain/Chroma] 파이썬 개발 RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0

누한 2024. 2. 23. 10:01
반응형

다음의 에러 메세지는 LLM, Chroma, Langchain 관련 Python 어플리케이션 개발중에 발생한 케이스 입니다.

 

저와 같이 Python3.11 & Linux 환경에서 테스트하는 경우 발생하는 것 같습니다. 

동일한 조건으로 Windows 환경에서 진행시 관련 에러는 발생하지는 않더군요

 

관련 에러가 발생하신 분은 참고하세요.

 

[에러 메세지]

RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0

 

[환경]

Rocky LInux 9

Python 3.11

 

[에러 설명]

에러 메시지는 시스템에 설치된 SQLite3 버전이 Chroma 라이브러리가 요구하는 최소 버전인 3.35.0보다 낮음을 의미합니다. 이 문제를 해결하기 위해서는 SQLite3를 업데이트하여 적어도 3.35.0 버전 이상이 되도록 해야 합니다.

 

 

[문제 해결 방법]
### SQLite3 업데이트 방법


Step 1. 현재 SQLite3 버전 확인
먼저 현재 시스템에 설치된 SQLite3의 버전을 확인합니다. 터미널이나 명령 프롬프트에서 다음 명령어를 실행하세요:

sqlite3 --version

 



Step 2. SQLite3 수동 설치
시스템의 SQLite3 버전이 3.35.0 미만인 경우, 최신 버전을 수동으로 설치해야 합니다. SQLite3의 최신 소스 코드는 SQLite 공식 웹사이트(https://www.sqlite.org/download.html) 에서 다운로드할 수 있습니다.

다운로드 및 압축해제 그리고 설치 과정에 대한 실행 코드 입니다.

아래는 3.451버전에 대한 설치 진행 과정입니다.

wget https://www.sqlite.org/2024/sqlite-autoconf-3451000.tar.gz
tar xvfz sqlite-autoconf-3451000.tar.gz
cd sqlite-autoconf-3xxxxxx
./configure --prefix=/usr/local
make
sudo make install

 

 

일반적으로는 이 과정을 통해서 SQLite3 업데이트 후 문제가 해결됩니다.

그런데 문제가 해결되지 않는 경우가 있습니다. (동일한 에러가 계속 발생)

 

그런 경우 설치된 SQLite3가 환경 변수에 적절히 등록되지 않아 어플리케이션에서 인지하지 못하는 경우 입니다.

이 문제는 아래 Step3를 통해서 해결할 수 있습니다.



Step 3. (옵션) 위의 과정을 한 이후에도 동일한 에러 메세지 발생

 

1. Python virtual env 를 재작성

 - 해결되는 경우도 있습니다.

 

2. virtual env 재작성으로 해결이 안되는 경우 (환경변수 등록 필요)

SQLite3 바이너리의 위치 확인: SQLite3를 수동으로 설치한 후, 설치된 바이너리의 위치를 확인합니다. 

일반적으로 /usr/local/bin 또는 /opt 내에 위치할 수 있습니다. 

설치 위치를 정확히 알고 있어야 합니다. 

  * 위의 설치 과정을 그대로 따라한 경우 경로를 변경하지 않고 아래 과정을 그대로 진행합니다.

환경 변수 설정: 

   Python 프로그램이 실행되는 쉘 환경에서 LD_LIBRARY_PATH 환경 변수에 SQLite3 라이브러리가 위치한 디렉토리를 추가합니다. 예를 들어, SQLite3 라이브러리(libsqlite3.so)가 /usr/local/lib에 설치되어 있다면, 해당 경로를 LD_LIBRARY_PATH에 추가합니다.

 

커맨드에 아래의 환경변수를 입력합니다.

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

 

* 중요 : 이 명령은 현재 세션에만 적용됩니다.

  즉, 영구적으로 적용하려면, 사용자의 홈 디렉토리에 있는 .bash_profile, .bashrc, .zshrc 등의

  쉘 설정 파일에 위 명령을 추가합니다.

 


이렇게 해도 해결되지 않는다면, Python3.10 버전으로 낮추시는걸 추천합니다.

반응형