Python 34

Ubuntu 20.04에서 Valkey(구 Redis) 소스 설치하는 방법

Valkey는 Redis에서 포크된 오픈소스 인메모리 데이터 스토어입니다. Ubuntu 24.04 이상에서는 공식 패키지로 제공되지만, Ubuntu 20.04에서는 직접 소스에서 컴파일해야 사용할 수 있습니다.이 글에서는 Ubuntu 20.04 환경에서 Valkey를 컴파일 및 설치하는 최신 절차를 정리했습니다.🔍 Valkey가 무엇인가요?Valkey는 Redis의 오픈소스 포크로, Redis가 BSL 라이선스로 변경된 이후 만들어졌습니다. Valkey는 여전히 완전한 오픈소스로 유지되며, Redis의 기존 기능을 대부분 계승합니다.📦 사전 준비: 의존 패키지 설치Valkey는 컴파일 시 TLS, RDMA, systemd 지원 등을 위해 추가 라이브러리를 필요로 합니다.sudo apt updatesu..

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

[Raspberry Pi 4B] Python으로 시리얼 번호 깔끔하게 얻는 법 (feat. vcgencmd)

Raspberry Pi 4B에서 장치 고유 식별자인 시리얼 번호를 얻는 방법을 정리했습니다.Python을 사용하면 ssh에서도 훨씬 깔끔하고 명확하게 처리할 수 있습니다.라즈베리파이에서 시리얼 번호를 얻는 대표적인 방법은 /sys, /proc, 그리고 vcgencmd를 활용하는 세 가지가 있습니다.1. /sys 경로 접근 방법 (추천)cat /sys/firmware/devicetree/base/serial-number | tr -d '\0'null 문자 제거 안 하면 다음과 같은 경고가 뜰 수 있습니다:-bash: warning: command substitution: ignored null byte in inputtr -d '\0'을 뒤에 붙이면 깔끔하게 출력됩니다.2. /proc/cpuinfo 활용 ..

IT/RaspberryPi 2023.07.25

[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