QGIS 3 Plugin 개발 환경 잡기

도입

GiS 쪽과는 전혀 상관 없이 밥 벌어 먹고 살고 있는데, 어쩌다 손형* 라는 분의 빅 픽쳐에 퐁당 빠져(?) 올 초부터 Python으로 짠 QGIS 2 버전용 plugin을  QGIS 3 버전용으로 컨버전하는 것을 몇몇 분들과 하고 있다.

참고로 Python은 차근차근 배운 적 없이 막 덤비면서 엉성하게 아는 수준이고(그래서 python 생기초 스터딜 하고 있음), QGIS는 플러그인 개발은 커녕 사용도 할 줄 모르는, 기지도 못하면서 날려고 하는 개삽질이다.

QGIS 3, 변화의 쓰나미

QGIS도 메이저 버전이 2에서 3으로 올라가면서 엄청난 변화가 일어나 QGIS 사용자들에게 멘붕을 불러일으켰으며, 플러그인 만드는 입장에서도 쓰나미 맞는 느낌의 세 가지 멘붕급 변화가 있었다.

  1. QGIS가 내장한 python version이 2에서 3으로 올라감 (아시는 분은 아시지만 파이썬 세계에서 3 버전의 변화는 가히 충격적이었다)
  2. GUI를 담당하는 라이브러리인 QT도 4에서 5로 올라감. 그에 따라 PyQT도 4에서 5로 올라감. 이것도 변화 폭이 상당하다.
  3. 당근 qgis python API도 일부 메소드가 deprecate 되는 등, 변화가 생겼다.

Pycharm 기동 배치 파일

Python IDE로 Pycharm community edition을 즐겨 쓰는데 open source 라이선스 (Apache License 2.0)라 회사 컴에서 써도 저작권 문제 없고 (단 Professional은 사서 써야 함), 궁금한 클래스, 함수에서 Ctrl + Q를 누르면 나오는 도움말이나 컨텍스트 메뉴가 예술이라 참 편하다.

인터넷 검색을 엄청 했고, 결국 Windows Batch 파일을 만들었다.

@echo off
setlocal
rem PYCHARM_HOME, PRJ_ROOT, QGIS_HOME은 자신 PC 환경에 맞게 수정 필요 
set PYCHARM_HOME=D:\Tools\PyCharm Community Edition 2018.3
set PRJ_ROOT=D:\works\qgis-tmsforkorea-plugin
set QGIS_HOME=D:\tools\QGIS 3.4 
call "%QGIS_HOME%\bin\o4w_env.bat" 
call qt5_env.bat 
call py3_env.bat 
path %OSGEO4W_ROOT%\apps\qgis\bin;%PATH% 
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis 
set GDAL_FILENAME_IS_UTF8=YES 
rem Set VSI cache to be used as buffer, see #6448 
set VSI_CACHE=TRUE 
set VSI_CACHE_SIZE=1000000 
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins 
set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python 
"%PYCHARM_HOME%\bin\pycharm64.exe" %PRJ_ROOT% 
endlocal

QGIS 3를 설치하면 QGIS가 쓰는 Python interpreter가 있는데, 당연한 이야기지만 plugin 개발할 땐 이 QGIS의 Python interpreter 를 쓰는 게 좋다. 그렇기 때문에 PYTHONHOME 환경변수를 잡았다.

QGIS 3에 들어 있는 Python Interpreter가 기본적으로 끌고 오는 라이브러리 말고도, QGIS 3 API나 PyQT5 등이 필요한데 아래와 같은 이유로 PYTHONPATH로 잡았다.

  • PyQT5는 그래도 pip로 설치할 수 있지만, QGIS API 같은 것은 PyPI에 없고 wheel 파일 찾기도 어려움
  • 플러그인 개발은 역시 기반 제품이 탑재한 라이브리러리로 하는 게 안전함

Pycharm에서 interpreter 설정

PYTHONHOME 환경변수를 잡고 Pycharm을 기동하긴 했지만, Pycharm 프로젝트에서 쓸 interpreter를 프로젝트 설정으로 잡아주어야 한다. Ctrl + Alt + S를 누르면 대화상자가 뜨는데 그 대화상자에서 project interpreter를 찾아 (아래 그림 참조) 톱니바퀴 아이콘을 누르면 컨텍스트 메뉴가 뜨는데

그 컨텍스트 메뉴에서 ‘Add…’를 고르면 나오는 추가 대화 상자에서 ‘System Interpreter’를 고른 다음 PYTHONHOME 환경 변수로 잡은 Python Interpreter 설치 디렉토리의 python.exe를 선택하면 된다. (아래 그림 참조)

개발 환경 설정 성공 여부 확인

Pycharm의 interpreter에서 QGIS API를 잘 import하면 설정에 성공한 것이다. 확인하는 방법은 Pycharm의 Python Interpreter를 실행시켜  Python version을 확인한 다음, ‘import qgis’를 치면 잘 수행이 되는지를 확인하면 된다 (아래 그림 참조)

이제 Pycharm의 Ctrl + Q 를 써서 편하게 QGIS 3 플러그인을 만들어 보자.

광고

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중