본문 바로가기
파이썬

깃허브 git download 사용방법 sqlcipher3 설치 파이썬

by 진심블로그 2024. 3. 19.

안녕하세요. 파이신입니다.

 

오늘은 파이썬 코딩시에 open source를 직접 설치하고 라이브러리를 이용하는 방법을

알아봅니다.

 

- 본 글은 파이썬 중급자 이상이 읽어 보기에 적합합니다.

 

깃허브, 깃이란?

 

라이브러리 개발사가 실행파일들을 웹에서 제공하면 좋은데,

그렇지 않은 경우도 많고,

 

라이브러리 개발자의 경우에는 실행파일을 만들어 제공하면 호환성에

문제가 생겨, 여러 말들이 생기는 것을 피하고자,

오픈소스를 제공하고 알아서 만들어 쓰라는 경우가 많습니다.

 

필자도 그런 경우이기는 합니다.

 

워낙 다양한 환경에서 동작해야 하니, 이건 코드의 본질이 아니라는 생각을 하기 때문입니다.

코드의 핵심을 잡는 게 git의 이유이기도 하니까 그렇습니다.

 

상업제품을 배포하는 목적이 아니기 때문이죠.

 

그래서 깃허브에서 오픈소스를 받을 때, 직접 접속해서 폴더를 몽땅 가져올 수도 있지만,

보통의 경우에는 git을 사용합니다.

 

자신의 pc에서 다음과 같은 cmd가 동작을 하지 않는다면 git이 설치되어 있지 않은 겁니다.

git clone https://github.com/....

 

 

git 설치

 

 

 

위 주소로 우선 들어가서, 윈도우용 git을 다운받습니다.

 

 

 

독립버전을 받습니다.

 

 

 

62MB 정도 되는 파일을 실행시키면 다음과 같은 화면이 나옵니다.

 

 

 

 

마지막 2개를 선택해 줍니다.

 

일반 개발자들이 사용할 일이 몇번이나 있을까 하지만,

어느 정도 규모가 있는 프로젝트를 가져오기에 편합니다.

 

 

본인의 개발환경에 맞추어 편한 것을 고르면 됩니다.

 

 

branch는 그대로 사용합니다.

 

 

 

처음에 시작할 때 cmd line에서 안된다고 해서 시작했죠. 

 

 

별도로 OpenSSH를 사용하고 있다면 아래 옵션을 선택하면 됩니다,만..

굳이 그럴 이유가 있을까도 싶습니다.

 

필자는 아래 옵션으로 몇 번 써보았는데, 별다른 장점은 없었습니다.

 

기본으로 선택하는 편이 좋습니다.

 

이후로도 몇 가지 설치 옵션이 나오는데, 중요한 것들이 아니라서 패스합니다.

 

모두 기본으로 두고 설치하면 됩니다.

 

cmd에서 아까 실행이 안되었던 명령줄을 다시 입력해 봅니다.

 

어차피, 웹에서 해당 오픈소스 덤프를 다운로드해서 내 pc에 설치하는 게 주 기능이라,

금방 끝납니다.

 

필자는 sqlite3의 기능을 몇 가지 보완하려고 테스트 삼아 sqlcipher3를 venv에 설치하려

다운받았습니다.

 

 

금방 끝납니다.

 

git을 설치하고 나서 재부팅 하거나 할 필요 없습니다.

 

13MB 정도 되는 리포를 2초 정도 걸려서 설치했습니다

 

git을 설치한 폴더가 아니라 git을 실행한 폴더에 다운해서 폴더를 만드는 것이기 때문에

본인의 venv에 맞추어 설치하면 됩니다.

 

sqlcipher3 설치

이제 git을 통해 git hub에서 sqlcipher3를 다운 받았으니, 설치를 해봅니다.

 

sqlcipher3가 설치된 폴더에서, cmd 또는 vscode의 터미널에서 다음을

실행합니다.

 

python setup.py build

 

혹시 venv 또는 기본 파이썬 커널에 setuptools 라이브러리가 설치되어 있지 않으면

다음과 같은 에러가 납니다.

 

ModuleNotFoundError: No module named 'setuptools'

 

sqlcipher3의 setup.py안에 해당 모듈을 import 하고 있어서 그렇습니다.

 

pip install setuptools로 설치해 줍니다.

 

그리고 다시 sqlcipher3를 빌드합니다.

 

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools"

 

위와 같은 에러가 나올 수 있습니다.

 

MSVC 빌드도구를 설치하라는 말입니다.

 

뒤에 나온 링크로 설치해 줍니다.

 

설치가 끝나면, 다시 빌드합니다.

 

위와 같은 에러는 사용자 환경에 따라 달라지는 것이지만,

sqlcipher3를 빌드하는 데 문제가 되지는 않으니, 하나하나 천천히 해결하면 됩니다.

 

설치가 완료되었으면, 다음과 같이 코드를 작성하면 됩니다.

 

DATABASE_NAME = 'my_encrypted_database.db'

with sqlite3.connect(DATABASE_NAME) as conn:
    conn.execute("PRAGMA key='my_secret_password'")
    cur = conn.cursor()

    cur.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, password TEXT)')
    cur.execute('INSERT INTO users (username, password) VALUES (?, ?)', ('alice', 'alice123'))
    cur.execute('INSERT INTO users (username, password) VALUES (?, ?)', ('bob', 'bob456'))

    conn.commit()

 

 

핵심은 PRAGMA key입니다.

 

사용에 몇 가지 조건이 있는데 다음과 같습니다.

 

- db를 만들 때 처음 사용해야 한다

- 이미 만들어진 db에 암호를 걸 때는 방법이 다르다

- 프로그램에서 암호 걸기 번거로우면 cmd에 파라미터 설정해서 db를 만들면 된다

- 등등..

 

그럼 다음 시간에는 실제 db를 만들어서 사용해 보겠습니다.

 

cmd에서 db를 바로 만드는 방법도 알아봅니다.

 

맺음말

 

참고로, sqlcipher3의 개발사인 zetetic는 sqlcipher3에 대한 업데이트를 꾸준히

하고 있는 것 같습니다. 

 

기업의 경우에는 커뮤니티 오픈소스를 사용하면 안됩니다.

유료버전을 구입해서 사용해야 합니다.

일반인들도 개인적으로 사용할 때 zetetic의 license 문구를 반드시 사용해야 합니다.

 

자세한 사항은 zetetic사의 홈페이지에 있으니 꼭 참고해서 사용하기 바랍니다.

 

우리도 프로그래머고 저들도 프로그래머입니다.

 

무단 사용은 하지 맙시다!