일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ssh
- JS
- Linux
- elasticsearch
- sample
- JavaScript
- 유니티
- Windows
- Es
- API
- Kibana
- build
- MSSQL
- 설정
- s3
- 엘라스틱서치
- 구글
- 영어
- docker
- Python
- Ai
- unity
- ChatGPT
- AWS
- nodejs
- logstash
- error
- mariadb
- MySQL
- Today
- Total
가끔 보자, 하늘.
PyCharm에 자주 쓰는 툴 설치 본문
자주 사용하는 툴들을 PyCharm에 External Tools에 연동하는 절차와 사용법을 기록합니다.
PyQt5 : pypi.org/project/PyQt5/
Qt Designer : pypi.org/project/PySide2/
PyUIC5 : pypi.org/project/pyqt5-tools/
PyInstaller : pypi.org/project/pyinstaller/
아래 내용은 PyCharm 2020.2.x, Python 3.8x와 Windows 10에서 진행된 내용입니다.
Qt Designer
Qt Designer는 Window를 디자인하기 위한 툴 입니다.
PySid2를 설치하면 C:\Users\YOURNAME\AppData\Local\Programs\Python\Python38\Lib\site-packages\PySide2 에 설치됩니다. (YOURNAME는 사용하는 계정으로 바꿔주세요.)
File -> Settings -> Tools -> External Tools 에서 + 아이콘을 눌러 툴을 설정합니다.
Name에 "Qt Designer" 입력
Program에 C:\Users\YOURNAME\AppData\Local\Programs\Python\Python38\Lib\site-packages\PySide2\designer.exe 입력
Arguments에 $FilePath$ 입력
Working directory에 $ProjectFileDir$ 를 입력
등록이 완료되면 Tools -> External Tools 메뉴에서 Qt Designer를 확인할 수 있습니다.
PyUIC5
Qt Designer로 제작된 .ui 파일을 .py 파일로 변환해주는 툴입니다.
File -> Settings -> Tools -> External Tools 에서 + 아이콘을 눌러 툴을 설정합니다.
Name에 "Ui2Py" 입력
Program에 C:\Users\YOURNAME\AppData\Local\Programs\Python\Python38\Scripts\pyuic5.exe 입력 (YOURNAME는 사용하는 계정으로 바꿔주세요.)
Arguments에 $FileName$ -o $FileNameWithoutExtension$.py 입력
Working directory에 $ProjectFileDir$ 를 입력
UI 파일을 열고 마우스 우측 버튼을 눌러 External Tools 메뉴에서 Ui2Py를 선택하면 ui파일을 py 파일로 변환합니다.
PyInstaller
프로젝트를 단독으로 실행 가능한 파일로 만들어주는 툴입니다.
File -> Settings -> Tools -> External Tools 에서 + 아이콘을 눌러 툴을 설정합니다.
Name에 "PyInstaller" 입력
Program에 C:\Users\YOURNAME\AppData\Local\Programs\Python\Python38\Scripts\pyinstaller.exe 입력 (YOURNAME는 사용하는 계정으로 바꿔주세요.)
Arguments에 --onefile --windowed $FilePath$ 입력 (콘솔 응용 프로그램일 경우 --windowed 옵션을 삭제하시면 됩니다.)
Working directory에 $ProjectFileDir$ 를 입력
등록이 완료되면 Tools -> External Tools 메뉴에서 PyInstaller를 선택해 실행하면 빌드가 진행됩니다. 빌드 후 프로젝트 폴더에 dist 폴더가 생성되고 그 안에 실행 가능한 파일이 생성됩니다.
프로젝트에 어떤 모듈을 설치했는지에 따라 간혹 "Failed to execute script ... " 라는 에러 메세지가 뜨면서 실행되지 않는 경우가 발생할 수 있습니다.
이때는 --windowed 옵션을 제거 후 터미널 화면에서 실행해보면 어떤 모듈을 찾을 수 없어 실행이 안되는지 확인이 가능합니다.
이 문제가 발생하는 이유는 PyCharm의 경우 빌드환경을 툴에서 프로젝트 별로 운영하기 때문인데, 이는 해당 프로젝트에 venv로 시작하는 폴더명이 있는 것을 통해 알 수 있습니다.
PyCharm에서 프로젝트를 만들면 기본적인 venv 폴더를 만들어 운영하며, 프로젝트에 설치한 모든 모듈들은 해당 프로젝트에만 종속적으로 설치됩니다. 설치 위치는 해당프로젝트폴더\venv\Lib\site-packages 입니다.
pyinstaller는 기본 설치 환경인 C:\Users\YOURNAME\AppData\Local\Programs\Python\Python38\Lib\site-packages 에서 모듈을 찾아 프로젝트에 포함시키기 때문에 PyCharm에서 프로젝트에 종속적으로 설치된 모듈의 경우는 찾을 수 없습니다.
이를 해결하기 위해서는 터미널에서 다시 한번 관련 모듈을 설치한 후 재빌드하면 문제가 해결됩니다.
(2021/02/23 추가)
pyInstaller로 빌드 중 "UnicodeDecodeError .. " 관련 에러가 발생할 경우 이 링크를 확인하세요. 4.0 이상 버전에서 문제가 없다고 하지만 4.2인 현재도 여전히 이슈가 발생합니다.
저는 compat.py 코드에서 line 326의 코드를 아래와 같이 수정했습니다.
out = out.decode(encoding, "replace")
pyInstaller의 다른 주의할 점으로는 데이터 파일(bundle file)은 포함되지 않는다는 것입니다.
예를들어 wordcloud를 사용할 경우 빌드 후 exe 파일을 실행하면 stopwords가 없는 에러가 발생합니다. 이를 해결하기 위해 --add-data 옵션을 사용하거나 spec 파일의 Analysis datas 옵션에 필요한 파일을 추가하여 해결할 수 있습니다.
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['c:\\wordcloud_sample\\main.py'],
pathex=['c:\\wordcloud_sample'],
binaries=[],
datas=[('stopwords','wordcloud')],
.
.
.
No module Named 에러 발생 시..
.spec 파일의 hiddenimports에 해당 모듈명을 포함해주면 됩니다.
Mecab 사용 시 발생하는 dicpath 관련 문제는 아래 블로그를 참고하시면 됩니다.
이래저래 처리해야 할 것들이 많네요. -_-a
'개발 이야기 > 개발툴 및 기타 이야기' 카테고리의 다른 글
Unity/Android 개발 시 손쉬운 로그 확인 방법 (0) | 2021.05.10 |
---|---|
Mac OS 초기화 및 재설치 하기 (2) | 2020.12.15 |
PyCharm Repositories 변경 (0) | 2020.09.14 |
오!!! AWS 에서 제 블로그 링크를... +_+ (0) | 2020.02.18 |
gcc 빌드 시 multilib package 관련 에러 (0) | 2020.02.05 |