Mac 에서 Python PySide2 설치 - Qt Designer 실행

Share

Last Updated on 9월 14, 2021 by Jade(정현호)


크로스 플랫폼 에 사용할 GUI 어플리케이션을 만들 필요가 있어서 여러가지를 고민하던 결과 Python 과 Qt 를 이용 하기로 하여 Mac 환경에서 설정하게 되었습니다.




1. Python 설치

Mac 에서는 기본적으로 Python이 설치가 되어 있습니다만 설치 된 버전이 2.7 버전이라서 3.8.x 버전을 추가로 설치 하도록 하겠습니다.


1-1 파일 다운로드 URL




1-2 버전 선택

포스팅 시점에서 3.8 의 가장 최신 버전을 선택하였습니다





1-3 파일 다운로드

mac 에서 설치할 것이라서 mac 버전의 파일을 다운로드 받으면 됩니다.





1-4 설치 진행

다운로드 된 pkg 파일을 실행하면 아래와 같이 설치 화면이 실행됩니다.























1-5 환경 설정

설치한 python3.8.9 버전을 간편하게 사용하기 위해서 환경변수를 설정 하도록 하겠습니다.

#기존 버전
user$ python --version
Python 2.7.10

# 설치한 신규 버전
user$ python3 --version
python 3.8.9

# Catalina 이전 bash shell 사용시 
# alias 추가 및 환경 변수 파일 다시 읽어들임
user$ echo "alias python=python3" >> ~/.bash_profile
user$ . ~/.bash_profile

# Catalina 이후  zsh 사용시
# alias 추가 및 환경 변수 파일 다시 읽어들임
user$ echo "alias python=python3" >> ~/.zshrc
user$ . ~/.zshrc


# alia 확인
user$ python --version
Python 3.8.9

# pip 업그레이드
user$ python -m pip install --upgrade pip

Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.2.3
    Uninstalling pip-20.2.3:
      Successfully uninstalled pip-20.2.3
Successfully installed pip-21.0.1


# pip upgrade 과정에서 permission 에러 발생시
user$ sudo python3 -m pip install --upgrade pip



2. PySide2 설치

Python 에서 QT 로 GUI 를 작성해보시거나 QT 로 GUI 를 작성을 위해 검색을 하면 많이 언급 되는 부분이 PyQt5 입니다 PyQt5나 PySide2 는 Qt 프레임 워크를 위한 Python 바인딩 세트  입니다.



2-1 PySide2 와 PyQt5 

먼저 제작사가 틀립니다
PyQt5는 RiverBank 에서 만들어졌으며, Pyside2 는 Qt 회사인 The Qt Company 에서 제작되었습니다.


그 다음으로는 라이선스가 틀립니다
PyQt5는 Commercial License 및 GPL 라이센스를 사용하며, PySide2 가는 LGPL 라이선스가 채택되어 PyQt5 에 비해 제약이 덜하고 자유롭게 사용할 수 있습니다.

그래서 PySide2를 사용하기로 결정하였고 PySide6 도 나왔으나 Dependency 로 추가로 설치가 필요한 부분이 있어서 PySide2 로 선택 하였습니다.

• PySide2

https://pypi.org/project/PySide2/

• PySide6
https://pypi.org/project/PySide6/



2-2 설치 

pip3 를 통해서 설치를 진행하시면 됩니다.

user$ pip3 install PySide2

..............

Installing collected packages: shiboken2, PySide2
Successfully installed PySide2-5.15.2 shiboken2-5.15.2



3. Qt Designer 실행

PySide2 가 설치가 되면 Qt Designer 는 같이 설치가 되어있기 때문에 실행만하면 사용 하면 됩니다 다만 Mac 에서 설치가 경로가 길어서 PATH 환경수가 필요할 것 같아서 아래와 같이 PATH 환경변수 및 alias 내용을 추가 하여 사용하면 더 간단하게 사용할 수 있습니다.

Qt Designer 파일이 있는 위치에 따라서 다음(아래)에서 설정할 환경변수의 경로를 달리 설정하면 됩니다.

# 파일 위치는 두곳 중 한곳으로 조회를 해보시면 됩니다.

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/PySide2/Designer.app/Contents/MacOS

또는 

/Users/유저명/Library/Python/3.8/lib/python/site-packages/PySide2/Designer.app/Contents/MacOS



• bash 환경

# PATH 환경 변수에 경로를 추가
echo "export PATH=\$PATH:/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/PySide2/Designer.app/Contents/MacOS" \
>> ~/.bash_profile

# backgroud 로 실행을 위해서 & 지정후 alias 사용
echo "alias Designer=\"Designer &\"" >> ~/.bash_profile

# 새로운 환경 변수 적용
. ~/.bash_profile


• zsh 환경

# PATH 환경 변수에 경로를 추가
echo "export PATH=\$PATH:/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/PySide2/Designer.app/Contents/MacOS" \
>> ~/.zshrc

# backgroud 로 실행을 위해서 & 지정후 alias 사용
echo "alias Designer=\"Designer &\"" >> ~/.zshrc

# 새로운 환경 변수 적용
. ~/.zshrc



위와 같이 경로에 대해서 PATH 를 설정 하였다면 아래와 같이 실행하면 Qt Designer 가 실행되게 됩니다.

# 실행

Designer






4. Python 에 PySide2 Import

Python 에서 Designer 에서 작성한 GUI 를 화면에 띄우기 위해서 PySide2 를 Import 해야 하며 추가적인 코드 가 필요 합니다.


4-1 Qt 폼 저장 

Designer 에서 개발할 폼에 대해서 일단 저장을 해야 하며 python 코드와 같은 디렉토리에 저장을 합니다.




4-2 python 파일 생성 

코드를 작성할 파이썬 파일을 생성 합니다.




4-3 python 코드 작성

PySide2 Import 및 필요 코드를 아래와 같이 작성 합니다.
form_class = loadUiType 에는 Designer 에서 저장한 UI파일명을 지정 합니다.

import sys
import random
from PySide2.QtWidgets import (QApplication, QLabel, QPushButton,
                               QVBoxLayout, QWidget)
from PySide2.QtCore import Slot, Qt
from PySide2.QtUiTools import QUiLoader
from PySide2.QtUiTools import loadUiType

#UI파일 연결
#단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
form_class = loadUiType("testpy.ui")[0]

#화면을 띄우는데 사용되는 Class 선언
class WindowClass(QMainWindow, form_class) :
    def __init__(self) :
        super().__init__()
        self.setupUi(self)

##### 코드 입력 #####



##### 코드 입력 #####


if __name__ == "__main__" :
    #QApplication : 프로그램을 실행시켜주는 클래스
    app = QApplication(sys.argv) 

    #WindowClass의 인스턴스 생성
    myWindow = WindowClass() 

    #프로그램 화면을 보여주는 코드
    myWindow.show()

    #프로그램을 이벤트루프로 진입시키는(프로그램을 작동시키는) 코드
    app.exec_()



4-4 실행

VSCode 사용시 아래와 같이 실행을 합니다.




정상적으로 수행된다면 아래와 같이 Designer 에서 생성한 폼의 GUI 가 동작하게 됩니다.




여기까지 Python 및 PySide2 에 대한 신규설치 등에 확인해보았습니다
Python 이나 Qt 에 대한 추가적인 내용은 다른 포스팅 글에서 기술하도록 하겠습니다.

0
글에 대한 당신의 생각을 기다립니다. 댓글 의견 주세요!x