Python 33

Ubuntu 20.04 에서 Valkey 설치하기

우분투 24.04, 24.10에는 valkey 가 패키지로 포함됩니다.하지만 오래된 버전인 20.04에는 없죠. 감사하게도 github 저장소를 제공하고 있습니다.git clone https://github.com/valkey-io/valkey.git 컴파일해서 써야 하는데 의존하는 패키지를 설치해줘야 합니다.sudo apt install -y librdmacm-dev libibverbs-dev libsystemd-dev 컴파일 옵션에 대한 설명은 저장소 README 를 참고하세요(https://github.com/valkey-io/valkey)저는 그냥 TLS 사용, RDMA 기능 사용, SYSTEMD 로 서비스화 기능을 사용하고 싶었습니다. test 도 추가해봤습니다.cd valkeymake BUIL..

IT/database 2024.10.30

[vscode] venv 생성 실패

vscode 에서 보통 가상 환경 추가할 때 화면 하단의 버전 정보를 클릭해서 Create Virtual Environment 를 지정하면 생성을 하게 됩니다.더보기관련 그림아래 부분 클릭Create Virtual Environment... 선택venv 선택python 을 기존 오래된 버전을 삭제하고 새 버전(현재 기준 3.12 및 3.11)을 설치하고 잘 쓰다가 오랜만에 가상 환경을 추가했는데 오류가 떳습니다.2024-07-10 10:24:36.755 [info] Running: D:\user\util\installed\python3.12\python.exe -m venv .venv2024-07-10 10:24:38.178 [info] > .\.venv\Scripts\python.exe -I ~\.vs..

IT/editor & ide 2024.07.10

윈도우 디펜더에서 바이러스라며 pyinstaller 로 생성한 exe 막는 문제

윈도우에는 기본적으로 윈도우 디펜더라는 백신이 설치되어 있습니다.pyinstaller 로 생성한 exe 실행파일이 디펜더에게 바이러스라며 실행이 차단 당하는 문제를 겪었습니다.os 는 윈도우 11 이었습니다.pyinstaller 에는 bootloader 라는 개념이 있습니다.bootloader 는 os 의 그것과는 다르게 미리 컴파일된 특정 플랫폼 전용 라이브러리를 포함시킨 바이너리입니다.bootloader 가 지정되지 않은 pyinstaller 는 관련한 패키지나 소스를 내려받아 이를 빌드하는 구조입니다.pip 로 설치한 pyinstaller 로 생성된 exe 는 특정 플랫폼 전용이 아닌 범용이고 다운로드를 높은 확률로 시도할텐데 이를 백신이 바이러스로 판단하는 것으로 추정됩니다. 이것을 어떻게 구축해..

IT/python 2024.05.27

[example][python3] os.environ 값 예시

기록용으로 남깁니다. 라즈베리파이에서 출력해본 sys.environ 변수 값입니다. import os, pprint pprint.pprint(dict(os.environ)) {'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1000/bus', 'HISTFILESIZE': '2000', 'HISTSIZE': '1000', 'HISTTIMEFORMAT': '%F %T ', 'HOME': '/home/pi', 'LANG': 'en_GB.UTF-8', 'LOGNAME': 'pi', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi..

IT/System Digging 2024.03.04

[python3][auto py to exe] 설치해보기

설치 자체는 쉽습니다!!(사실이라면 이런 글도 안썼음..) python3 -m pip install auto-py-to-exe 이렇게 명령 내리면 2.42.0 버전이 설치됩니다(되어야 합니다) 그리고 어렵습니다.. ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. autoit-ripper 1.1.0 requires pefile==2019.4.18, but you have pefile 2023.2.7 which is incompatible. Suc..

IT/python 2024.01.26

[python3] 셸 명령 파싱하기 성능 비교

기존에 파이썬 cpu 온도 얻어오는 코드가 awk 를 두번 돌려서 파싱하는 구조로 되어 있었습니다. vcgencmd measure_temp 명령 결과를 파이썬에서 파싱해도 되는데 뭐가 성능이 더 좋을까 하는 궁금증이 생겼습니다. pi@RPwiznet013:~/wiznet/skp_arhis/app $ python3 Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> ret, res = subprocess.getstatusoutput("vcgencmd measure_te..

IT/python 2024.01.05

[python] 문자열 뒤집기

기록용으로 남깁니다. 쉬운 내용인데 가끔 가물가물해서 정리합니다. 문자열이 s = "God is my judge" 일 때 s[::-1] 로 뒤집힌 값을 얻을 수 있습니다. 참고로 이 슬라이스 인덱싱은 [시작위치:끝위치:step/stride/보폭] 으로 지정할 수 있습니다. 끝위치 전까지로 끝위치 문자는 포함되지 않습니다. s 는 s[0::1] 과 같습니다. 다른 방법(for 를 사용한 c 방법, 리스트로 변환하는 방법)들이 있지만 이 방법만 기억하셔도 좋을 것 같습니다. 깔끔하니까요!!

IT/python 2023.06.19

[python3] 동일 값으로만 채워진 객체 확인하기

동일한 값으로만 iterable 한 객체가 가득 채워진 경우를 확인할 필요가 있습니다. 예를 들면 C 언어로 초기화된 리눅스 공유메모리는 C 의 null 값인 0x00 으로 초기화 됩니다. 제가 사용하고 있는 프로그램은 4096 Byte의 공유메모리를 초기화 해서 사용하고 있었습니다. 공유 메모리 내용 검증을 하기 위해 특정 상황에 메모리 내용을 찍도록 해놓았는데, 초기화이 쓸데없이 0x00 이 4096개나 스크롤되는게 좀 짜증이 났습니다. 방법을 찾던 중 all 이라는 파이썬 내장(built-in)함수를 알게 되었습니다. all(iterable) 과 같이 호출하고 iterable 값 중에 하나라도 비어 있는 값이 있으면 False 를 반환하고 모두 비어있지 않으면 True 를 반환합니다. 비슷한 함수로..

IT/python 2023.02.17

[python3] pathlib 으로 encoding 지정해서 파일 읽기

기록용으로 남깁니다. 엑셀에서 csv 로 변환한 파일을 읽으려고 하니 오류가 생겼습니다. SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape encoding 을 지정하니 정상 동작합니다. f = open("kk.csv", "r", encoding="utf-8") 그냥 open 말고 pathlib 을 사용해서도 읽고 싶었습니다. data = Path("kk.csv").read_text(encoding="utf-8") 디저트로 윈도우 파일 경로를 그대로 붙여넣었더니 오류가 발생해서 간단히 해결했습니다. "d:\doc\kk.csv" 로 쓰면 \가 escape..

IT/python 2023.02.16