전체 글 351

[VSCODE] Prettier - Code formatter 설정

Prettier - Code formatter - Visual Studio Marketplace python 코드를 작성하다보면 Shift + Alt + F 를 눌러 코드를 정렬해가며 코드를 작성한다. Prettier 가 해당 정렬을 도와주는 extension 이다. Prettier 의 설정 1) Extension Tab 에서 Prettier - Code Formatter 를 설치한다. 2) Ctrl + , 혹은 File > Preferences > Settings 를 선택해 설정에 진입한다. 설정 중 formatter 를 입력해 Editor: Default Formatter 를 찾아 Prettier - Code formatter를 선택한다. 다른 항목은 별다르게 수정할 필요가 없었지만 한라인 문자열 수..

[VSCODE] Google Python Style Guide 적용

styleguide | Style guides for Google-originated open-source projects 여러 명이 협업을 하다보면 가독성을 높히기 위해 같은 Coding Style 을 가지고 코드를 만들게 된다. python 관련하여 Google 에서 사용하는 Python Coding Style Guide 가 있어 VSCODE 와 연동해 보았다. Lint 설정 이후 아래 pylintrc 파일을 다운로드 받아 사용하는 workspace 바로 아래에 넣는다. https://google.github.io/styleguide/pylintrc 위 pylintrc 에 따라 pylintrc 에 따라 경고가 정상적으로 나오는 것을 확인하였고, 코드를 수정하였다. Apply pylint accordi..

[pywebview] "X" 버튼 (close) 누르면 webview hide 하도록 구현

Window UI 에서 오른쪽 위 X 버튼을 누르면 창이 사라지고 tray 의 Show 메뉴를 누르면 다시 나타나는 기능을 구현하고자 한다. 이를 위해 링크(API | pywebview (flowrl.com))를 검토해 보니 closing event를 처리하는 on_closing 내에서 False 를 return 하면 close 처리를 하지 않는다는 것을 확인했다. 이에 아래와 같이 on_closing 구문내에 hide 기능을 넣고 False를 return 하면 될 것으로 생각하고 구현하였지만, 해당 구문을 타게 되면 CPU 를 100%를 먹으면서 프로그램이 "응답 없음"이 되버리면서 죽어 버렸다. def webview_subprocess(conn_parent, conn_child): ... window..

Language/Python 2021.09.12

[pywebview] pystray를 이용한 hide/show 제어

pystray 로 Windows tray 를 이용하여 program을 제어할 수 있다. (pytray 아니고 pystray) pystray · PyPI [pystray 를 이용해 tray에서 Hide, Show, Quit 기능 추가] import pystray from pystray import MenuItem from pystray import Menu ... image_path = Image.open(base_path + '/res/tray_icon.png') menu = Menu(MenuItem('Hide', lambda: send_cmd_to_window(parent_pipe, 'hide')), MenuItem('Show', lambda: send_cmd_to_window(parent_pipe, ..

Language/Python 2021.09.12

[pywebview] subprocess 를 이용한 pywebview 분리 실행

pywebview를 실행하면 main thread 내에서 다른 코드 수행이 불가능하다. 이에 별도의 process로 분리하여 pywebview를 수행시키면 별도의 코드를 수행할 수 있다. pywebview using subprocess · TechNoteGit/pywebview_example@540c4c9 (github.com) import webview from multiprocessing import Process, Pipe def webview_subprocess(child_pipe): window = webview.create_window('TechNote', 'https://technote.kr') webview.start(cmd_recv, [window, child_pipe], gui='cef..

Language/Python 2021.09.11

[pyinstaller] TypeError: an integer is required (got type bytes)

pyinstaller 로 작업하다 "TypeError: an integer is required (got type bytes)" 에러가 발생하였다. 이와 같이 에러가 발생할 때는 pyinstaller의 버전을 업그레이드하면 문제가 해결된다. [pyinstaller 업데이트] PS D:\workspace\pywebview_example> pip install --upgrade pyinstaller Requirement already satisfied: pyinstaller in d:\python38\lib\site-packages (3.3.1) Collecting pyinstaller Downloading pyinstaller-4.5.1-py3-none-win_amd64.whl (1.9 MB) |█████..

Language/Python 2021.09.11

[GIT] 이메일/이름 설정 - git config

git commit 시 user.email, user.name 이 설정되어 있지 않으면 에러가 발생한다. 이에 따라 git config 를 통해 설정이 필요하다. > git config --global user.email "you@example.com" > git config --global user.name "Your Name" [설정 후 파일로 저장] > git config credential.helper store [설정 후 임시로 저장, 별도 인자가 없을 경우 15분] > git config credential.helper cache > git config credential.helper 'cache --timeout=3600' [저장한 credential 삭제] > git config --uns..

카테고리 없음 2021.09.11

Python - pipenv 설정 및 사용

기본 python 환경과 별도로 사용할 수 있는 가상 환경 제공 원하는 python 버전을 설정하여 사용 해당 가상 환경만을 위한 python library 를 설치 Pipfile, Pipfile.lock (pip 설정 파일) 을 기반으로 python library 일괄 설치 pyinstaller 사용하여 변환시 꼭 필요한 library 만으로 최적화 변환 : pipenv 없이 pyinstaller로 exe 실행 환경 생성할 경우 기본 python 환경에서 수행시 설치된 python library 를 기준으로 생성하기 때문에 불필요한 library 들로 인해 변환 용량이 커짐. pipenv 를 사용하여 필요한 library 만 설치한 환경 이용시 최적화하여 변환 가능. pipenv Github : htt..

Language/Python 2021.06.27