파이썬 ChromeDriver를 이용한 selenium 테스트를 하다 만난 에러. 잘 되다가도 Chromedriver 브라우저에 headless 옵션을 주기만 하면 작동이 안되고 element.click 에러가 나는 것이다. 처음에는 headless 옵션을 사용했을경우 서버쪽에서 이를 알아채고 뭔가 조치를 취한게 아닌가 싶었는데, headless 모드에서만 에러가 나다보니 에러가 나는 상황을 파악 하기가 쉽지 않았다. 각종 삽질을 하다 Chromedriver 옵션에 일반적인 FULL HD 해상도의 브라우저 크기를 지정하는것으로 문제를 해결했다. 이런식으로 옵션에 브라우저 윈도우 크기를 지정했다. options.add_argument('--window-size=1920,1080') options.add_a..
요즘 코딩의 표준 encoding은 대부분 UTF-8을 이용한다. 파이썬 logging 모듈을 이용하여 콘솔값을 로그파일로 내보내는 경우 콘솔에서는 정상적으로 보이나, 로그파일의 한글이 깨져보이는 경우가 종종 있다. 이경우 해결방법은 두가지가 있다. 1. pycharm 에디터의 기본 파일 인코딩을 UTF-8로 변경한다. 2.logging 모듈 셋팅시 파일 아웃풋 옵션을 UTF-8로 강제 지정한다. 1번 방법 pycharm IDE의 경우 기본 프로젝트 encoding 은 System-Default 값으로, 윈도우 운영체제라면 x-windows-949를 사용하도록 되어있다. 이부분을 바꿔보자. IDE환경 상단 메뉴 File > Settings > 왼쪽 네이게이션 Editor > File Encodings 메..
Pycharm IDE 환경에서 개발할때 class 안에 전역변수를 선언하면 위와 같은 경고 메세지가 뜰수 있다. 사실상 전역변수는 함수 최상위 모듈라인에 기재를 하는게 맞는것이지만, pyqt 어플리케이션 개발 환경에서는 윈도우를 포함하는 메인 class가 사실상의 최상위 계층이라 global 선언이 필요한 경우가 있다. 물론 경고메세지이기 때문에 실행에서는 아무런 영향이 없지만서도... 역시나 경고탭에 항상 뜨는 메세지가 눈에 가시같이 걸릴때가...쿨럭 사실상 매우 정상적인 경고이기 때문에 이 경우는 문법을 체크하는 inspection를 손봐주도록 하자. 경고메세지에 마우스 오른쪽 버튼을 눌러 Show Quck Fixes를 누른다. inspection ..... 경고메세지를 클릭 선택한다. 다시 Edit..
파이참 IDE 환경에서 self 인스턴스를 불러들인 함수 선언에서 자주 보이는 경고이다. 물론 실행에는 큰 문제가 없지만 이 또한 왠지 불편함이... 이는 해당 함수 내부에서 self에 접근하는 로직이 없어서 발생하는 경고이다. 인스턴스가 필요없는 함수인경우 이를 무시하기 위해 함수선언 위에 아래 주석을 붙여주면 사라진다. # noinspection PyMethodMayBeStatic 이런식으로 # noinspection PyMethodMayBeStatic def set_logger(self): fomatter = logging.Formatter..... ...... ...... ......
pyqt를 사용하면서 UI파일을 임포팅하면 대체적으로 메인 함수가 이렇게 된다. class MyWindow(QMainWindow, form_class): def __init__(self): # MyWindow 클래스의 초기화 함수(생성자) super().__init__() # 부모클래스 QMainWindow 클래스의 초기화 함수(생성자)를 호출 self.setupUi(self) # ui 파일 화면 출력 그런데 Problems 탭에 아래와 같은 경고 메세지가 나온다. Parameter 'flags' unfilled 실행에는 문제가 없지만.... 일단 problem이라니 왠지 불편... pyqt의 고질적인 문제로 보이고 메인함수 선언시 flags를 지정하는 수작업을 진행해도 되지만, 귀찮은 사람들을 위해 콘..
IndexError: pop from an empty deque [IPKernelApp] WARNING | Parent appears to have exited, shutting down. [IPKernelApp] WARNING | Parent appears to have exited, shutting down. 서버가 시작되고 주피터 웹페이지는 접속이 되나 기존 열려있던 ipynb 문서들에서 오류가 나면서 갑자기 서버가 강제 종료되는 현상 [해결] 주피터 문서가 저장되는 기본폴더에서 .ipynb_checkpoints 폴더를 찾아 폴더안의 모든 파일을 삭제후, 서비스 재시작 아.. 된다. 추가사항 몇일후 유사한 문제가 다시 발생하였으나 이번엔 .ipynb_checkpoints 폴더가 이미 비어있는 경우였..
jupyterlab을 사용하다 코딩내용이 길어지면 코드 구조 가독성을 빨리 파악하기 위해 폴딩을 많이 사용한다. 익스텐션 설치 없이 순정 jupyterlab에서 폴딩 기능을 알아보자. settings 메뉴 맨하단 Advanced Settings Editor로 들어간다. 오른쪽에 열린 setting창에서 항목중에서 Notebook을 찾아 들어가자. 아래 화면은 이미 notebook 옵션을 만졌기때문에 맨위에 올라와 있다. 원래는 조금 아래에서 찾을수 있다. Code Cell Configuration 인지 꼭 확인. 다른 셋팅에 항목은 동일한게 여러번 반복되어 있으니 잘 봐야함. Show Line Numbers를 켜면 에디터창에 라인넘버가 나온다. 오류가 났을때 행줄을 찾아가기 유용하니 켜놓는게 좋다. Li..
아무것도 설치하지 않은 윈도우 11환경에서 시작한다. 파이썬이 기본 설치 되어 있어야 한다. 기왕이면 파이썬도 설치되고 가상환경까지 한꺼번에 관리할수 있는 '미니콘다' 를 설치하도록 한다. (미니콘다? 원래는 '아나콘다' 라는 파이썬 가상환경 및 패키지 관리 배포판인데 덩치가 크고 안쓰는 패키지까지 너무 많이 설치된다. 이와는 달리 최소한의 필수 요소만 가진 가벼운 프로젝트로 나온게 '미니콘다' 이다) # 미니콘다 설치 아래 최신버젼 링크를 참고하여 다운 받도록 하자. https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links 현재 시점의 최신버젼인 Miniconda3 windows 64bit (Conda 4.11.0 P..