이 가이드는 Windows 환경에서 그누보드6를 설치하고 실행하는 과정에서 마주칠 수 있는 복잡한 Python, Rust, C/C++ 컴파일, 그리고 패키지 의존성 충돌 문제들을 해결하는 노하우를 담고 있습니다. 이대로 따라오시면 성공적으로 그누보드6를 구동할 수 있을 것입니다.
기본 설치 가이드는
https://sir.kr/manual/g6/install/#1-git-clone
참조
기본으로 python 설치 되어 있어야함
1단계: Python 가상 환경 활성화
그누보드6 설치의 첫걸음은 격리된 Python 가상 환경을 활성화하는 것입니다.
- 명령 프롬프트(CMD) 또는 PowerShell을 엽니다.
- 그누보드6 프로젝트 폴더(예:
D:\gnuboard\g6)로 이동합니다D:\gnuboard\g6 - 다음 명령어를 사용하여 가상 환경을 활성화합니다.
venv\Scripts\activate - 명령 프롬프트 맨 앞에
(venv)가 표시되면 성공입니다.
2단계: Rust 및 Cargo 설치 (Python 확장 모듈 빌드 오류 해결)
그누보드6가 사용하는 일부 Python 패키지(예: cryptography, pydantic-core)는 Rust 언어로 작성된 확장 모듈을 포함하고 있습니다. 이들을 컴파일하려면 Rust 컴파일러와 패키지 관리자인 Cargo가 필요하며, 이들이 없으면 Cargo, the Rust package manager, is not installed or is not on PATH
와 같은 오류가 발생합니다.
- Rustup 다운로드 및 설치:
- 웹 브라우저에서 https://rustup.rs/ 로 이동합니다.
- “Download rustup-init.exe for Windows 64-bit” 버튼을 클릭하여 설치 파일을 다운로드합니다.
- 다운로드한
rustup-init.exe
를 실행하고, 설치 과정에서 기본 옵션
(1) Proceed with installation (default))
을 선택하여 진행합니다.
- 명령 프롬프트 재시작:
Rust 설치 후에는 모든 명령 프롬프트(또는 PowerShell) 창을 닫고 다시 열어 시스템 환경 변수가 제대로 적용되도록 합니다. - 설치 확인 및 업데이트:
새로 연 명령 프롬프트에서 다음 명령어를 입력하여 Rust와 Cargo가 정상적으로 설치되었는지 확인하고 최신 상태로 업데이트합니다.rustc --versioncargo --versionrustup update - 버전 정보가 출력되고
up to date
메시지가 나타나면 성공입니다.
3단계: psycopg2 관련 오류 해결 (pg_config 오류)
그누보드6가 PostgreSQL 데이터베이스를 사용하는 경우,
Python의 psycopg2 패키지 설치 시 Error: pg_config executable not found
와 같은 오류가 발생할 수 있습니다.
psycopg2-binary설치 (권장):psycopg2대신 미리 컴파일된 바이너리 버전인psycopg2-binary를 설치하는 것이 가장 간단합니다.pip install psycopg2-binaryrequirements.txt수정:
만약requirements.txt에psycopg2로 명시되어 이로 인해 문제가 지속된다면, 해당 라인을psycopg2-binary로 직접 수정하고 저장하세요.
이미 설치된psycopg2-binary버전이 있다면pip install --upgrade psycopg2-binary
로 업데이트하거나,requirements.txt에 명시된 버전을 현재 시스템에 설치된 버전과 일치시키세요.
4단계: lxml, pydantic-core, pydantic 의존성 충돌 및 빌드 오류 해결
이 패키지들은 Python 3.13과 같은 최신 버전에서 ImportError (예: lxml.html.clean 분리), TypeError (ForwardRef._evaluate() 변경),
또는 버전 간 충돌(pydantic과 pydantic-core 간 불일치)을 일으키는 주범입니다.
pip업그레이드:
가장 먼저pip자체를 최신 버전으로 업데이트하여 의존성 해결 능력을 향상시킵니다.python.exe -m pip install --upgrade piprequirements.txt파일 수정 (가장 중요):D:\gnuboard\g6\requirements.txt파일을 열어서 다음 패키지들의 라인을 찾고 수정합니다.lxml:lxml.html.clean모듈 분리 오류가 발생한다면,lxml의 추가 기능인html_clean을 설치하거나 별도 패키지를 설치해야 합니다.
가장 쉬운 방법은requirements.txt에lxml_html_clean을 추가하는 것입니다.lxml_html_clean# 이 줄을 추가합니다.pydantic및pydantic-core: 이 두 패키지는 서로 강력한 의존성을 가지며, Python 3.13 환경에서 버전 호환성 문제가 자주 발생했습니다.- 가장 권장하는 방법 (성공 사례 바탕):
서로 호환되는 버전을requirements.txt에 명시하는 것입니다.
이전에pydantic==2.11.7과pydantic-core==2.33.2가 정상적으로 설치되었음을 확인했으므로, 이 조합을 사용합니다.pydantic==2.11.7pydantic-core==2.33.2
- 가장 권장하는 방법 (성공 사례 바탕):
requirements.txt저장: 변경한 내용을 저장합니다.
5단계: 모든 패키지 최종 설치 및 Uvicorn 실행
이제 모든 준비와 수정이 완료되었으니, requirements.txt를 사용하여 필요한 모든 패키지를 설치하고 그누보드6 서버를 실행합니다.
- 가상 환경이 활성화되어 있는지 다시 한번 확인합니다.Bash
(venv) D:\gnuboard\g6>venv\Scripts\activate - 모든 패키지 설치를 시도합니다:
pip install -r requirements.txt
이 과정에서 이미 설치된 패키지들은Requirement already satisfied메시지를 출력하며 건너뛸 것입니다. - Uvicorn으로 그누보드6 실행: 패키지 설치가 성공적으로 완료되면, 다음 명령어로 그누보드6 서버를 실행합니다.
uvicorn main:app --reloadINFO: Uvicorn running on http://127.0.0.1:8000과 같은 메시지가 보이면 성공입니다. 웹 브라우저에서 해당 주소로 접속해 보세요.*
버전이 다르다 보니 버전에 정확하게 하는 것이 중요합니다.