파이썬 SQLite3 엔진 업그레이드 하는 법

2018. 6. 25. 00:14Hobby/Programming

반응형

SQLite3는 파이썬 내장 기능 입니다.  즉, 파이썬 설치 후 바로 사용이 가능 하지만 파이썬 패치 속도가 SQLite3 공식 사이트 보다 느립니다. SQLite3는 내장 기능이라 pip로 SQLite3만 업그레이드 불가능합니다.

파이썬의 SQLite3는 2가지로 구성되어 있습니다.

  1. (venv) E:\webprj>python
  2. Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> import sqlite3 
  5. >>> sqlite3.sqlite_version # 엔진 버전
  6. '3.21.0'
  7. >>> sqlite3.version # 라이브러리 버전
  8. '2.6.0'

sqlite3를 import해서 버전을 확인할 수 있습니다. 저의 목표는 엔전 버전을 최신으로 교체하는 것 입니다.

아나콘다의 navigator에서 업그래이드 할 때 문제점.

\Anaconda3_64\pkgs와 bin 폴더안에 SQLite3 엔진과 command line 유틸리티가 설치됩니다. 파이썬에서 프로그램 할 때 사용되는 라이브러리 폴더가가 아닙니다.

그래서 직접 SQLite3를 다운받아 설치해야 합니다.

1. SQLite3 사이트에서 자신의 플랫폼에 맞는 버전을 다운 받습니다.

현재 버전은 3.24.0 입니다. 다운로드 사이트에는 3가지 압축파일이 있습니다. 윈도우는 32비트, 64비트 있으니 주의해주세요.

Precompiled Binaries for Windows
sqlite-dll-win32-x86-3240000.zip
(444.18 KiB)
32-bit DLL (x86) for SQLite version 3.24.0.
(sha1: 11d37a0eccbaf9995c6b236ff1a99d174a2566bd)
sqlite-dll-win64-x64-3240000.zip
(736.78 KiB)
64-bit DLL (x64) for SQLite version 3.24.0.
(sha1: 534776011cb664a03009bca76c06c9855c1d15a9)
sqlite-tools-win32-x86-3240000.zip
(1.64 MiB)
A bundle of command-line tools for managing SQLite database files, including the command-line shell program, the sqldiff.exe program, and the sqlite3_analyzer.exe program.
(sha1: e87b1642d9b36fcbe39b003524e58a22c1fe4b54)

위 2개는 32비트, 64비트 구분이고 3번째 sqlite-tools-xxxxx는 유틸리티입니다.

  • 2018-06-05  오전 04:53             5,506 sqlite3.def
  • 2018-06-05  오전 04:53           870,278 sqlite3.dll
  •                2개 파일             875,784 바이트
  •                2개 디렉터리  34,279,931,904 바이트 남음

저는 32, 64비트 둘다 받아서 해봤습니다. 압축풀면 2개 파일이 생성됩니다. 필요한 것은 sqlite3.dll입니다. 라이젠 1700 + 윈도우10 + python 3.6 64bit에서  둘다 실행됩니다. 다만 50만개 레코드 입력했을 때 체감 속도가 약간 차이 나네요. 

2.  sqlite3.dll 복사

이것을 파이썬\DLLs 폴더에 복사하면 됩니다. 아주 간단한데 아나콘다 환경에서 sqlite3.dll이 여기저기 폴더에 있어서 어느 것이 진짜인지 찾아내는데 힘들었습니다. 왜 가상환경 만들어야 하는지 깨우친 상황이었네요.

3. 가상환경에 적용하는 방법

가상환경 만드는 목표가 독립된 실행 환경을 구축하는 것입니다. 파이썬 본체, 연습용으로 설치해 놓은 잡다한 라이브러리들과 꼬이지 않게 하는 것입니다. 따라서 가상환경을 만드는 순간 모든 버전이 고정됩니다. 파이썬 본체에서 아무리 업그레이드나 삭제를 해도 가상환경에 영향을 주지 않습니다. 내장된 기능도 마찬가지 입니다.

venv\scripts\sqlite3.dll

가상 환경에서는 DLLs가 아니고 scripts 폴더에 복사해야 합니다.

  • (venv) E:\webprj>python
  • Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
  • Type "help", "copyright", "credits" or "license" for more information.
  • >>> import sqlite3
  • >>> sqlite3.sqlite_version
  • '3.24.0' # 다운로드 받은 버전과 일치하면 정상입니다.

4. 유틸리티 프로그램들은 어디로?

유틸리티들은 의존성이 없으니까 환경변수에서 파이썬 패스 잡아놓은 곳으로 넣으주면 됩니다.

왜? 업그레이드 했나?

SQLite3는 이름처럼 아주 가벼운 프로그램입니다. Database로서 기본 기능은 빠짐없지만 자체 내장 함수들이 많이 약하죠. 버전업 되면서 테이블 관련 연산기능이 강화되고 있습니다. 이 기능들 한번 써보고 싶어서 업글했습니다. 간단한 통계기능은 프로그램에서 구현하는 것보다 DB에서 쿼리 결과로 받아오는 것이 훨 빠르고 프로그램 코드도 간단해집니다.

반응형