Programming
-
기록용으로 남깁니다. 간혹 현재 발생한 예외의 이름을 검사할 필요한 때가 있습니다. 이 때에는 다음과 같이 접근할 수 있습니다. try: # ... except Exception as e: print(type(e).__name__) print(e.__class__.__name__) print(e.__class__.__qualname__) 위 3개 중에 하나만 사용해도 됩니다.
[python3] 예외 이름 출력하기기록용으로 남깁니다. 간혹 현재 발생한 예외의 이름을 검사할 필요한 때가 있습니다. 이 때에는 다음과 같이 접근할 수 있습니다. try: # ... except Exception as e: print(type(e).__name__) print(e.__class__.__name__) print(e.__class__.__qualname__) 위 3개 중에 하나만 사용해도 됩니다.
2024.02.15 -
python3 -c 'import os; print(os.environ)' 이 명령을 리눅스에서 실행할 때에는 다른 os 에서는 실행이 안 될지는 몰랐습니다. 잘 실행됬었으니까요.. 하지만 윈도우에서 실행하면 SyntaxError: EOL while scanning string litteral 이라는 오류가 발생합니다. 윈도우라고 안 될리는 없을텐데.. 하며 여러번 명령들을 바꿔가며 실패만 거듭하다가 포기할 즈음에 설마 윈도우는 따옴표를 가리나? 하는 생각에 큰 따옴표로 감싸봤습니다. 그러니... 잘 되네요!! 작은 따옴표 ' 와 큰 따옴표 " 모두 혼용할 수 있는 리눅스와 달리 윈도우에서는 -c 옵션으로 cli 상의 한 줄 명령을 주려면 반드시 큰 따옴표 " 로 둘러쌓아야 정상 실행됩니다.
[python3] 윈도우에서 한줄 실행하는 방법python3 -c 'import os; print(os.environ)' 이 명령을 리눅스에서 실행할 때에는 다른 os 에서는 실행이 안 될지는 몰랐습니다. 잘 실행됬었으니까요.. 하지만 윈도우에서 실행하면 SyntaxError: EOL while scanning string litteral 이라는 오류가 발생합니다. 윈도우라고 안 될리는 없을텐데.. 하며 여러번 명령들을 바꿔가며 실패만 거듭하다가 포기할 즈음에 설마 윈도우는 따옴표를 가리나? 하는 생각에 큰 따옴표로 감싸봤습니다. 그러니... 잘 되네요!! 작은 따옴표 ' 와 큰 따옴표 " 모두 혼용할 수 있는 리눅스와 달리 윈도우에서는 -c 옵션으로 cli 상의 한 줄 명령을 주려면 반드시 큰 따옴표 " 로 둘러쌓아야 정상 실행됩니다.
2024.02.01 -
설치 자체는 쉽습니다!!(사실이라면 이런 글도 안썼음..) 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..
[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..
2024.01.26 -
기록용으로 남깁니다. 보통 환경 변수가 필요할 때 VAR1="this_value" python3 aa.py 와 같이 변수=값 을 앞에 써주고 그 뒤에 실행시킬 명령(python3 aa.py)을 써주면서 사용합니다. 이런 저런 테스트로 노가다를 하다가 보니 이런 생각이 들었습니다. argument 로 aa.py 가 해석할 명령을 주는데 그거와 별개로 파라미터를 명령 해석 및 실행이 아니라 다른 방식 또는 모드 지정을 하고 싶다는 생각이었습니다. 다만, 그렇게 하려면 키워드 옵션 지정해서 처리하거나 argparse 를 써서 설정해야 하는데 귀찮더군요.. 그래서 생각해낸 게 환경 변수였습니다. 파이썬에서도 자신의 환경 변수에 접근할 수 있으니(os.environ) 어떻게든 되겠지라는 생각을 했습니다. 다만, ..
[bash] 다중 환경 변수(multiple environment variable)와 함께 프로그램 실행하기기록용으로 남깁니다. 보통 환경 변수가 필요할 때 VAR1="this_value" python3 aa.py 와 같이 변수=값 을 앞에 써주고 그 뒤에 실행시킬 명령(python3 aa.py)을 써주면서 사용합니다. 이런 저런 테스트로 노가다를 하다가 보니 이런 생각이 들었습니다. argument 로 aa.py 가 해석할 명령을 주는데 그거와 별개로 파라미터를 명령 해석 및 실행이 아니라 다른 방식 또는 모드 지정을 하고 싶다는 생각이었습니다. 다만, 그렇게 하려면 키워드 옵션 지정해서 처리하거나 argparse 를 써서 설정해야 하는데 귀찮더군요.. 그래서 생각해낸 게 환경 변수였습니다. 파이썬에서도 자신의 환경 변수에 접근할 수 있으니(os.environ) 어떻게든 되겠지라는 생각을 했습니다. 다만, ..
2024.01.18 -
기존에 파이썬 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..
[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..
2024.01.05 -
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 가 존재하고 이를 ..
[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 가 존재하고 이를 ..
2023.12.12 -
pyaudio 를 쓰면서 좀 짜증아 났던 부분이 강제적인 디버그 메시지를 봐야 한다는 것입니다. 구현한 프로그램이 시스템의 서비스로 등록되면 해당 메시지가 syslog 를 당당하게 차지하기도 합니다. 보통은 /usr/share/alsa/alsa.conf 파일이나 ~/.asoundrc 파일이나 /etc/asound.conf 설정이 문제가 있어서 발생하는 메시지라고 합니다. 가장 좋은 것은 최적화된 설정을 찾아서 고치는 것이겠죠.. 고치지 않아도 동작 잘 되고, 위의 alsa 설정 고치기도 머리 아프고, 지저분한 것이 싫은 경우에는 에러 핸들러를 비워주면 해당 메시지 없이 사용할 수 있습니다. #!/usr/bin/env python from ctypes import * import pyaudio # c 언어..
[python3][pyaudio] 초기화 디버그 메시지 숨기기pyaudio 를 쓰면서 좀 짜증아 났던 부분이 강제적인 디버그 메시지를 봐야 한다는 것입니다. 구현한 프로그램이 시스템의 서비스로 등록되면 해당 메시지가 syslog 를 당당하게 차지하기도 합니다. 보통은 /usr/share/alsa/alsa.conf 파일이나 ~/.asoundrc 파일이나 /etc/asound.conf 설정이 문제가 있어서 발생하는 메시지라고 합니다. 가장 좋은 것은 최적화된 설정을 찾아서 고치는 것이겠죠.. 고치지 않아도 동작 잘 되고, 위의 alsa 설정 고치기도 머리 아프고, 지저분한 것이 싫은 경우에는 에러 핸들러를 비워주면 해당 메시지 없이 사용할 수 있습니다. #!/usr/bin/env python from ctypes import * import pyaudio # c 언어..
2023.10.18 -
가끔 터미널에서 작업을 할 때 bash 로 작성하기에는 짜증나고 python 으로 하면 금방 처리되는 경우가 있습니다. 파이썬 명령이 길어지는 경우 파일로 작성해서 터미널에서 실행하면 가장 간단한데, 가끔 파일 자체를 작성할 수 없는 경우가 있습니다. 이런 경우 터미널에서 python -c '파이썬 명령들' 로 실행을 할 수 있는데 단순 한줄짜리 명령들은 세미콜론 ; 을 사용해서 여러 명령을 입력할 수 있었는데 if else 등은 할 줄 몰라서 못했었습니다. 그냥 대충 써보면 개행이 잘못되었다든지 문법이 틀렸다든지의 오류가 발생했었습니다. 인터넷을 뒤져 찾아낸 방법은 python -c $"파이썬 명령1\n파이썬 명령2\n..." 형태로 쓰면 정상적으로 실행되는 것을 확인할 수 있었습니다. 예를 들면 if..
[python3] 터미널에서 한 줄로 if else 사용하기가끔 터미널에서 작업을 할 때 bash 로 작성하기에는 짜증나고 python 으로 하면 금방 처리되는 경우가 있습니다. 파이썬 명령이 길어지는 경우 파일로 작성해서 터미널에서 실행하면 가장 간단한데, 가끔 파일 자체를 작성할 수 없는 경우가 있습니다. 이런 경우 터미널에서 python -c '파이썬 명령들' 로 실행을 할 수 있는데 단순 한줄짜리 명령들은 세미콜론 ; 을 사용해서 여러 명령을 입력할 수 있었는데 if else 등은 할 줄 몰라서 못했었습니다. 그냥 대충 써보면 개행이 잘못되었다든지 문법이 틀렸다든지의 오류가 발생했었습니다. 인터넷을 뒤져 찾아낸 방법은 python -c $"파이썬 명령1\n파이썬 명령2\n..." 형태로 쓰면 정상적으로 실행되는 것을 확인할 수 있었습니다. 예를 들면 if..
2023.10.06