Study/Web

[Web]Django 설치 및 설정(sqlite version error)

seomj 2023. 6. 24. 00:39

0. python3 install

python3가 기본적으로 설치되어 있어야 한다.

설치되어 있지 않다면 다음 명령을 이용하여 설치해주자.

yum -y install python3

 

1. django install

이제 django를 설치한다.

python3 -m pip install django

 

2. project create

django-admin startproject myproject .

.(현재 디렉토리)에 myproject라는 프로젝트가 생성된다.

 

3. django 실행

[root@localhost ~]# python3 manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 23, 2023 - 15:22:43
Django version 3.2.19, using settings 'myproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[23/Jun/2023 15:22:43] "GET / HTTP/1.1" 200 10697

 

그러나 정상적으로 실행되기 전까지 시행착오가 있었다.

 

django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).

오류가 발생하였고

이를 해결하기 위해서는 아래의 순서대로 진행하면 된다.

 

해당 사이트에 방문하여 다운로드 받을 sqlite 링크를 복사한다.

 

SQLite Download Page

Templates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used for source-code products that are generally only useful on unix-like platforms. Template (3) is used for precompiled bi

www.sqlite.org

 

wget을 이용해 다운로드를 진행한다.

wget https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz
wget https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz --no-check-certificate

위 명령으로 실행시 오류가 생겨 옵션을 추가해서 실행하였다.

 

mv sqlite-autoconf-3420000.tar.gz /usr/src
cd /usr/src
tar -xvf sqlite-autoconf-3420000.tar.gz
cd sqlite-autoconf-3420000
./configure 
make
make install

/usr/src 의 위치가 영향이 있는지는 모르겠다...

tar로 압축파일을 풀어준 뒤 폴더로 들어가 차례대로 수행한다.

make를 하기 전에 make clean을 하면 더 좋다.

 

그 후가 중요하다!!

기존의 sqlite3의 파일을 설치하려는 최신 버전으로 대체하는 작업이 필요하다.

이때 libsqlite3.so.0.8.6 파일의 위치를 알아야 하며, 해당 위치는 다 다르다..!!

그렇기 때문에 아래와 같은 명령을 통해 위치를 찾아주어야 한다.

[root@localhost ~]# find /usr/ -name libsqlite3.so.0.8.6
/usr/lib64/libsqlite3.so.0.8.6
/usr/local/lib/libsqlite3.so.0.8.6
/usr/src/sqlite-autoconf-3420000/.libs/libsqlite3.so.0.8.6

 

이제 위치를 알기 때문에 기존의 파일에 _old를 붙여 백업본을 하나 만들어주고 기존 파일은 새버전의 파일로 대체한다.

mv /usr/lib64/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6_old
cp /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib64/libsqlite3.so.0.8.6

 

그리고 버전을 확인해보면 잘 적용되었다.

[root@localhost ~]# python3 -c "import sqlite3; print(sqlite3.sqlite_version)"
3.42.0

 

이제 python3 manage.py runserver를 하면 잘 작동한다.