본문 바로가기
히치하이커 개발/Django

[Django] AWS 에서 runserver 할 때 Sqlite3 오류

by 헬보이 2022. 10. 21.
반응형

AWS 에 github 에서 파일을 복제하고 장고를 실행시키기 위해 runserver 했을때 sqlite3 버전이 맞지 않아서 오류가 나는 경우가 많다. 

python 이나 python3 으로 실행할때 서로 다른 오류가 발생하는데 이때 python3 버전으로 진행하자 구버전은 이제 안녕~!

 

버전이 맞지 않으면 맞는 버전을 다운로드 받아서 적용하면된다. 

  • sqlite 사이트 다운로드 주소 확인
  • 파일다운
  • 파일설치
  • 라이브러리 이동
  • 장고 runserver 실행

 

 

 

Sqlite 사이트 다운로드 주소 확인

https://sqlite.org/download.html

에스큐엘라이트 사이트에서 tar.gz 파일의 링크주소 복사
파일다운

사이트에서 링크를 오른쪽 마우스 클릭해서 주소복사

 

파일다운 

cd /opt/  #다운로드 위치로 이동
sudo wget [복사한 다운로드 주소]
sudo tar -zxf [다운로드된 파일명]
cd [압축풀린 폴더]

위에서 확인한 사이트에서 링크를 복사해서 내 aws ec2 서버로 다운로드하자

 

파일설치

다운로드 받은 파일을 실행하자

./configure

하지만 위의 파일을 실행했을때 오류가 발생할수 있다. 

빨간색 네모로 표시한 설치파일 오류 메시지 캡쳐이미지
오류메시지

설치가 안되기 시작한 부분인 "checking for gcc...no" 라서 gcc 가 있는지 확인했으나 없었다. aws 에는 기본 설치가 아닐수 있으니 설치를 진행하자

yum install gcc

gcc 설치를 완료하고 다시 "./configure" 를 실행하니 잘 설치된다. 

 

"./configure" 가 완료되면 아까 configure 가 있는 폴더에서 

sudo make clean
sudo make -j 20
sudo make install

순서대로 위 명령을 실행하면 설치가 완료된다. 

하지만 아직 끝은 아니다 설치는 됐으나 기존에 설치되어 있던 버전과 충돌이 날수 있다. 

sqlite3 -- version

버전을 확인했을때 오늘 설치된 버전이 아니면 버전을 맞춰줘야한다. 

 

 

라이브러리 이동

make install 로 설치된 파일은 /usr/local/lib/ 경로에 위치한다.

sqlite3 의 설치된 폴더의 캡쳐 이미지
설치파일 캡쳐

그리고 /usr/lib64 경로에 예전 버전의 실행파일이 존재한다. 

기존 sqlite3 실행파일 목록 캡쳐이미지
실행파일 캡쳐

기존파일은 "_bak" 를 붙여서 백업하고 새로 다운로드 받은 파일로 대체한다. 

sudo /bin/cp -rf /usr/lib64/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6_bak   #파일백업
sudo /bin/cp -rf /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6       #파일이동

위의서 봤다시피 "3" 버전의 파일은 버전은 달라도 동일한 파일 명을 가지고 있다. 헷갈리지말자

sqlite3 의 버전이 바뀐걸확인하는 캡쳐 이미지
파이썬에서 바뀐걸 확인

python3   # 파이션 콘솔실행
>>import sqlite3  #파이썬 파일 임포트
>>sqlite3.sqlite_version  # 버전확인

위와 같이 최종적으로 버전을 확인해보자 다운로드 받은 버전과 동일하면 성공!!

 

장고 runserver 실행

manage.py 가 있는 폴더로 이동해서 아래 실행

python3 manage.py runserver 0:8080

 

정상적으로 서버가 실행되면 모두 완성!!

runserver 한번하려고 참 고생이 많았다. ㅠㅜ

 

댓글