IT/파이썬 2021. 4. 15.
Windows 10 SDK 설치 - dll 오류 같은 것이 나면
(아직 작성중인 글로 해결중인 블로그 글입니다. 최종 업데이트 하면 이 메시지는 사라집니다.) 그냥 Windows 10 SDK 설치를 하세요. 여러모로 좋아요 Pyinstaller dll 오류가 많이 나서 찾아보니, 이런 답변이 많네요. api-ms-win-core- dll 같은 것들이 오류나 로그에 많이 나타나네요 윈도우 10에서는 WARNING: lib not found: api-ms-win-core-*.dll같은 에러가 출력되는데 이를 해결하기 위해 아래의 페이지를 참고하자. developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/ Windows 10 SDK - Windows app development Windows App Certifica..
IT/파이썬 2021. 4. 14.
파이썬 bytearray 배열 reset 하기
마이크로파이썬 micropython 의 세계로 들어가고 있다. 점점..하다보니 bytearray를 새로 만드는 것은 정말 자료도 많이 있는데, 이미 만들어진 bytearray를 다시 리셋 시켜주는 코드를 찾기가 쉽지 않네. 물론 가장 쉽게 할 수 있는 방법은 for i in range(len(your_array)): your_array[i] = 0 요거 더 잘하는 방법이 있을 것 같아서 찾아본 결과. $ ./upython MicroPython v1.8.1-39-gdb4addd on 2016-07-01; linux version Use Ctrl-D to exit, Ctrl-E for paste mode >>> a = bytearray(10) >>> id(a) 139728051341376 >>> a[:] =..
IT/파이썬 2021. 3. 19.
파이썬 pyside2 IP address 입력 창 만들기 - PyQt5 QLineEdit
파이썬 pyside2 IP address 입력 창 만들기 PyQT5, Pyside2를 이용한다면 아래 코드를 참고하면 IP address만 받는 입력 박스을 얻을 수 있다. 정규식과 Validator 를 활용하는 방법이 정말 좋아 보인다. ipRange = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])" # Part of the regular expression # Regulare expression ipRegex = QRegExp("^" + ipRange + "\\." + ipRange + "\\." + ipRange + "\\." + ipRange + "$") ipValidator = QRegExpValidator(ipRegex, self) lineEdit = QLine..
IT/파이썬 2021. 3. 16.
파이썬 여러 widget 이 하나의 슬롯(callback/signal) 함수 사용하기
버튼 클릭이든, cellchanged 든 위젯을 쓰다보면 이벤트에 반응하는 함수를 구현해서 써야 한다. 버튼이 여러개 인데 거의 동일한 기능을 한다든지 혹은 위젯 배열로 구성했다던지 할 때 각각 signal 함수를 만들면 편리한 점도 있지만, 코드 낭비가 심하다는 기분이 많이 든다. 그래서 찾아보니 sender() 라는 함수가 있어서 동일한 함수를 써도 누가 보내는지 구분할 수 있도록 되어 있다. 이젠 거의 대부분 같은 기능을 하는 중복 함수라면 같이 사용하면 되겠다. 아래 예제 코드의 일부분은 QLineEdit 위젯에 글자를 쓰면 원하는 글자만 받도록 만드는 filter 기능을 넣고 싶을 때 사용한 코드이다. 물론 QLineEdit 가 배열형태로 많이 있는 페이지에서 동일한 필터를 사용하는 경우 사용하..
IT/파이썬 2021. 3. 10.
파이썬 변수 할당시 메모리 복사? 참조? copy deepcopy slicing
항상 궁금하던 건데, 파이썬은 막쓰기 좋은데 불안해~~~ 일단 변수에 다른 변수를 대입하는 형태로 하면 기본적으로는 포인터 교환처럼 같은 곳을 가리키는 포인터 값을 공유하는 느낌. from docs.python.org/ko/3/library/copy.html 파이썬에서 대입문은 객체를 복사하지 않고, 대상과 객체 사이에 바인딩을 만듭니다.가변(mutable) 컬렉션 또는 가변(mutable) 항목들을 포함한 컬렉션의 경우때로 컬렉션을 변경하지 않고 사본을 변경하기 위해 복사가 필요합니다. 요상하게 2가지 타입이 있어서 동작이 다르게 된다고 하니 그게 좀 문제 mutable , immutable 대충 내가 이해하기 위해 적어논 원칙, mutable 은 그냥 복사한 대로 그대로 사용만 되고, (즉 문자열같은..
IT/파이썬 2021. 3. 2.
파이썬 getattr 함수란? - 문자열 변수값과 동일한 객체 속성 불러오기
코드에서 getattr 이 있어서 간단하게 찾아봄 결론적으로 getattr(object, attr) 와 실제 object.attr 로 부르는 것이 동일하다는 뜻 For example, getattr(x, 'foobar') is equivalent to x.foobar. docs.python.org/3/library/functions.html#getattr Built-in Functions — Python 3.9.2 documentation Built-in Functions The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabe..
IT/파이썬 2021. 2. 27.
파이썬 pyside2 layout에 버튼, 라벨 위젯 추가시에 쓰는 함수
파이썬 pyside2 layout에 버튼, 라벨 위젯 추가시에 쓰는 함수 보통은 그냥 addWidget 을 써버리는데, 이게 추가하는 순서대로 놓아지니깐, 나중에 뒤에 추가하는 것을 앞으로 정렬하고 싶을때 또 인덱스를 찾아서 지우고 삽입하는 과정을 해야 하는 것으로 레퍼런스가 많이 되어 있다. 그냥 런타임에 바뀌는 것이 아니라면, 원하는 순서대로 자기가 넣을 수 있도로고 addWidget 대신에 insertWidget 함수를 사용하면 편리하다. 아래처럼 말이다. # 원래코드 # self.ui.horizontalLayout_5.addWidget(self.ui.btn_search) # index 정보를 넣을 수 있는 insertWidget 사용한 코드 self.ui.horizontalLayout_5.inse..
IT/파이썬 2021. 2. 26.
파이썬 pyside2 버튼 글자 왼쪽 정렬
pyside2 pyqt5에서 QPushButton에 이미지도 넣고 글자도 넣고, 왼쪽으로 정렬하고자 한다면, 아래 그림처럼 (qpushbutton icon left alignment text left alignment) 간단하게 스타일시트 하나 적용하면 된다. 버튼이름.setStyleSheet("QPushButton { text-align: left; }") 추가로, 아래 내용도 넣어 주면 좋을 듯 background-position: left; background-repeat: no-reperat; 이글은 질문에서 답을 찾아온 것입니다. 아래 질문은 더 어려운걸 요구하셔서 ㅋㅋ 이미지는 왼쪽 정렬, 글자는 가운데 정렬 머 우리는 간단하게 통일하자고~~ stackoverflow.com/questions/..
IT/파이썬 2021. 2. 24.
파이썬 pyside2 QSplitter 한쪽은 fix 한쪽은 expand 되도록 수정하기
QSplitter 를 하나 놓아서, 아래 그림의 1, 2번 프레임들이 자유롭게 사이즈를 조정할 수 있게 구성했다. 앗 그런데, 창을 키우니깐 비슷한 비율로 크기가 커지는게 아닌가? 나는 1번창은 조정한 그대로 두고, 창 사이즈가 변경되면 2번만 조정되도록 하고 싶은데.. 보통의 layout 처럼 Qt Designer 상에서 QSplitter 속성에 layoutStretch 를 조정하는 부분이 없어 잠시 당황. (아래아래 그림 참고) 결국 코드로 그것을 구현할 수 밖엔 없었다..(적어도 내가 아는 범위에서는 ㅋㅋ) 코드는 아래와 같다. splitter인스턴스이름.setStretchFactor( 0, 0 ) splitter인스턴스이름.setStretchFactor( 1, 1 ) 앞에 인자는 인덱스고, 뒤에 ..
IT/파이썬 2021. 2. 19.
파이썬 flask Jinja2: Check If Variable – Empty | Exists | Defined | True
이거 중요함. 체크안하고 render_template 함수에서 막 쓰면, 자꾸 선언되어 있지 않다고 오류가 막남... variable is undefined? 이런류의 에러, Exception 발생 들어올 수 도 있고 안 들어 올 수 도 있는 변수는 쓰기 전에 반드시 체크하고 사용하기 바람. {% if variable is defined %} variable is defined
IT/파이썬 2021. 2. 18.
파이썬 bool 함수로 bool 으로 변환 내용정리
착각하고 있던 것이 있어서, bool 이 그냥 0, 1 과 자동으로 변환될 줄 알았는데 문자 '0' 은 True 값으로 변환이 되네. 관련글 내용 참조 False >>> bool(0) False >>> bool(0.0) False >>> bool('') False >>> bool("") False True >>> bool(1) True >>> bool(123.123) True >>> bool("False") True >>> bool("0") True wikidocs.net/22202 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net BJ. Roberto Nickson 님의 사진, 출처: Pexels
IT/파이썬 2021. 2. 17.
파이썬 Mongoengine 에서 Document 삭제 방법 flask
파이썬 Mongoengine 에서 Document 삭제 방법 flask flask mongoengine 을 쓴다면 아래 방법으로 document 를 삭제할 수 있다. delete()로 간단하게 지울 수 있다. lunch = Food.objects.first() // Get a single 'Food' instance lunch.delete() // Delete it! 혹은 바로 찾아서 지우는 것도 가능하다. Food.objects(type="snacks").delete() Mongo shell 에서 지우려면 아래와 같이 수행하면 된다. > db.food.remove( { type : "snacks" } ) > db.monsters.deleteOne({ name: 'Zerp' }); 이 모든 내용은 아래 ..