IT/python 48

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

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

IT/python 2024.05.27

[python3] windows10 에서 pyenv + poetry 환경 구축하기

기록용으로 남깁니다.Win + X 키를 눌러 터미널을 관리자 권한으로 실행권한 설정powershell 이 실행된 상태에서 아래 명령 입력. 이 것 실행 없이 실치 시도하면 '보안 오류' 발생함. 스크립트를 실행할 수 없다고 함Set-ExecutionPolicy RemoteSignedpyenv 설치 명령 입력Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"pyenv 실행 확인설치 했더니.. 실행을 못하네?이..

IT/python 2024.05.03

[python3] 윈도우에서 한줄 실행하는 방법

python3 -c 'import os; print(os.environ)' 이 명령을 리눅스에서 실행할 때에는 다른 os 에서는 실행이 안 될지는 몰랐습니다. 잘 실행됬었으니까요.. 하지만 윈도우에서 실행하면 SyntaxError: EOL while scanning string litteral 이라는 오류가 발생합니다. 윈도우라고 안 될리는 없을텐데.. 하며 여러번 명령들을 바꿔가며 실패만 거듭하다가 포기할 즈음에 설마 윈도우는 따옴표를 가리나? 하는 생각에 큰 따옴표로 감싸봤습니다. 그러니... 잘 되네요!! 작은 따옴표 ' 와 큰 따옴표 " 모두 혼용할 수 있는 리눅스와 달리 윈도우에서는 -c 옵션으로 cli 상의 한 줄 명령을 주려면 반드시 큰 따옴표 " 로 둘러쌓아야 정상 실행됩니다.

IT/python 2024.02.01

[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

[fastapi] main.py 가 아닌 test.py 실행하기

fastAPI 를 잘 몰라서 헤매다가 이 단순한 내용을 기록용으로 남깁니다... 저는 fastapi_test.py 라는 파일을 실행시키려고 합니다. 그 파일 안에 다음 내용이 들어 있습니다. app = FastAPI() 기존에는 main.py 를 uvicorn main:app --reload 명령으로 실행시켰습니다. 그러면 main.py 가 없이 fastapi_test.py 를 실행하려면 어떻게 해야 할까요? uvicorn fastapi_test:app --reload 이 간단한 명령을 몰라서 엄청 삽질했습니다.. ㅎㅎ 참고로 현재 실행하는 디렉토리가 소스가 위치한 곳과 다르다면 이를 앱 이름에 반영해줘야 합니다. 현재 디렉토리 하위에 examples 안에 fastapi_test.py 가 존재하고 이를 ..

IT/python 2023.12.12

[python3][pyaudio] 초기화 디버그 메시지 숨기기

pyaudio 를 쓰면서 좀 짜증아 났던 부분이 강제적인 디버그 메시지를 봐야 한다는 것입니다. 구현한 프로그램이 시스템의 서비스로 등록되면 해당 메시지가 syslog 를 당당하게 차지하기도 합니다. 보통은 /usr/share/alsa/alsa.conf 파일이나 ~/.asoundrc 파일이나 /etc/asound.conf 설정이 문제가 있어서 발생하는 메시지라고 합니다. 가장 좋은 것은 최적화된 설정을 찾아서 고치는 것이겠죠.. 고치지 않아도 동작 잘 되고, 위의 alsa 설정 고치기도 머리 아프고, 지저분한 것이 싫은 경우에는 에러 핸들러를 비워주면 해당 메시지 없이 사용할 수 있습니다. #!/usr/bin/env python from ctypes import * import pyaudio # c 언어..

IT/python 2023.10.18

[python3] 터미널에서 한 줄로 if else 사용하기

가끔 터미널에서 작업을 할 때 bash 로 작성하기에는 짜증나고 python 으로 하면 금방 처리되는 경우가 있습니다. 파이썬 명령이 길어지는 경우 파일로 작성해서 터미널에서 실행하면 가장 간단한데, 가끔 파일 자체를 작성할 수 없는 경우가 있습니다. 이런 경우 터미널에서 python -c '파이썬 명령들' 로 실행을 할 수 있는데 단순 한줄짜리 명령들은 세미콜론 ; 을 사용해서 여러 명령을 입력할 수 있었는데 if else 등은 할 줄 몰라서 못했었습니다. 그냥 대충 써보면 개행이 잘못되었다든지 문법이 틀렸다든지의 오류가 발생했었습니다. 인터넷을 뒤져 찾아낸 방법은 python -c $"파이썬 명령1\n파이썬 명령2\n..." 형태로 쓰면 정상적으로 실행되는 것을 확인할 수 있었습니다. 예를 들면 if..

IT/python 2023.10.06

[python3] asyncssh + nohup command

원격으로 작업을 할 일이 생겼습니다. 시간이 좀 걸리는 파이썬 패키지 설치 작업이었습니다. 이를 여러 장비에다 설치하려고 하는데 기존 코드는 장비 하나하나 일일이 접속해서 패키지도 하나하나 다 설치 완료 해야 다음 항목으로 넘어갈 수 있었습니다. 각 장비에서 소요되는 시간은 3분이 채 안되는데 전체 장비가 400여대 가까이 되니 1200분... 즉 20시간이 소요되는 겁니다... 이를 줄여보고자 며칠 째 집에도 제 때 못들어가고 작업하다가 대충 동작하는 코드를 완성해서 그 일부를 공유합니다. connect 인자는 대충 아실겁니다. known_hosts=None 은 등록되지 않은 장비에 접속할 때 known_hosts 에 등록할 것인지 물어보게 되는데 (ssh 명령으로는 -o StrictHostKeyChe..

IT/python 2023.09.22