프로그래밍/Python 124

[python] PIP로 설치한 패키지 내부 디버깅하기 (in VSCode)

열심히 파이썬 개발을 진행하던 중에 설치된 패키지 내부에서 오류가 발생하는데, 왜 그런 오류가 발생하는지 도저히 알 수가 없었던 경우가 있었습니다. 내부 소스까지 타고 디버깅을 하면 금방 원인을 찾을 수 있을 것 같았는데, 방법을 몰라서 이리저리 찾아 보았는데, 엄청 간단한 해결책이 있었습니다. launch.json 파일에 다음과 같은 한 줄을 추가하면 PIP로 설치한 패키지 내부도 디버깅이 가능합니다. "justMyCode": false 아래는 위 옵션을 켜고 디버깅을 하다가 PIP 내부에서 오류가 발생한 상황입니다. 참고 자료 https://stackoverflow.com/questions/60995830/ ; Debug Python code thats in a PIP package in VS Code

[python] socketio Clinet : One or more namespaces failed to connect error

문제점 및 증상 python flask-socketio 패키지를 이용하여 SocketIO를 구현한 서버에 대하여, 브라우저의 자바스크립트 라이브러리에서는 정상적으로 잘 접속되어, 이벤트를 주고 받는데 아무런 문제가 없었습니다. # reference : https://flask-socketio.readthedocs.io/en/latest/getting_started.html # https://stackoverflow.com/questions/31647081/ # https://heodolf.tistory.com/125 from flask import Flask, render_template from flask_socketio import SocketIO, emit from socketio import Cl..

flask RESTful API의 CORS 설정

개요 파이선 Flask를 이용하여 간단하게 RESTful API 만들어서 유용하게 이용하고 있었습니다. 외부에서 작성된 RESTful API를 이용하려고 하니, CORS(Cross Origin Resource Sharing) 문제가 발생하여 이를 해결하는 과정을 정리해 둡니다. CORS (Cross Origin Resource Sharing) 란? 우리말로 번역하면 "교차 출처 리소스 공유"로 브라우저 등에서 서버가 다른 출처의 리소스(API 등)를 요청을 허용할 수 있도록 하는 웹 서버의 정책이라고 볼 수 있습니다. 외부 다른 도메인 등에서의 요청을 허용하지 않으면, CORS 정책 위반으로 요청에 대한 처리가 실패하게 됩니다. 관련된 요청 헤더는 다음과 같습니다. Origin Access-Control..

[python] 크롬 브라우저 실행 방법

크롬 브라우저를 실행하여, 특정 URL 주소를 표시하고 싶은 경우가 종종 있습니다. 별도의 패키지 설치 없이 가장 손쉬운 방법은 os.system() 함수를 이용하는 방법입니다. 그 밖에 webbrowser 패키지를 이용하는 방법이 있으나, 별도의 패키지를 설치해야하는 점이 단점입니다. 아래는 os.system() 함수를 이용하여 특정 URL 주소를 표시하는 예제입니다. import os # os.system('chrome http://hbesthee.tistory.com') # 오류 발생 : 'chrome'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. # Chrome 실행 파일이 PATH에 등록되어 있지 않았음 # os.system('"%ProgramFiles%..

[Python] email-"The sender address is not a valid RFC-5322 address" 오류 대처

문제점 및 증상 아래와 같이 이메일 발송 예제를 이용하여 메일을 발송하였을 때, 대 부분은 문제 없이 잘 수신이 되었으나, 네이버에서는 수신이 되지 않았습니다. import smtplib from email.mime.text import MIMEText smtp = smtplib.SMTP('mail.mail-server.kr', 25) smtp.ehlo() # say Hello #smtp.starttls() # TLS 사용시 필요 smtp.login('sender@mail-server.kr', 'qrCheckIn2@2!') msg = MIMEText('본문 테스트 메시지') msg['To'] = 'hbesthee@naver.com' msg['Subject'] = '메일 발송 시험 (2021.08.05)'..

[python] datetime 형식의 두 날짜간의 차이 구하기

Python에서 datetime 형식의 두 날짜 사이의 시간 차이를 계산하는 방법에 대해 알아보겠습니다. datetime 모듈은 날짜와 시간 연산을 매우 간편하게 해주는 강력한 도구입니다.기본적인 datetime 차이 계산가장 간단한 방법은 두 datetime 객체를 빼는 것입니다. 이렇게 하면 timedelta 객체를 얻을 수 있습니다.from datetime import datetime# 두 날짜 생성date1 = datetime(2024, 3, 15, 10, 30, 0) # 2024년 3월 15일 10:30:00date2 = datetime(2024, 5, 20, 14, 45, 30) # 2024년 5월 20일 14:45:30# 날짜 차이 계산time_difference = date2 - dat..

[python] JSON 검증 (validation)

jsonschema를 이용하면 JSON 데이터가 원하는 형식 (schema)에 맞는지 확인하여 처리할 수 있습니다. jsonschema를 이용하여 JSON 데이터를 확인하는 기본적인 방법은 아래와 같습니다. from jsonschema import validate # A sample schema, like what we'd get from json.load() schema = { "type" : "object", "properties" : { "price" : {"type" : "number"}, "name" : {"type" : "string"}, }, } # If no exception is raised by validate(), the instance is valid. validate(instanc..

[python] OpenCV - 이미지의 폭과 높이 구하기

개요OpenCV에서 이미지에 대한 폭(width)과 높이(height)를 구하는 방법을 알아 보겠습니다.이미지의 폭과 높이 구하는 방법이미지에 대한 폭과 높이는 다음과 같이 img.shape로부터 구할 수 있습니다.from cv2 import imreadimg = imread('image.jpg')# 이미지 크기 구하기 ; 높이, 폭 순서 주의height, width = img.shape[:2]print(f"이미지 폭: {width} / 이미지 높이: {height}")# 컬러/흑백 구분if len(img.shape) == 2: print("흑백 이미지입니다.")else: print("컬러 이미지입니다.")위 예제 코드와 같이 "height, width = img.shape[:2]" 이렇게 수..

[Git] 특정 커밋(commit)로 이동하기 - checkout

git 커밋(commit) 이력 확인 이동할 특정 커밋을 확인하기 위하여 커밋 이력을 확인해야할 때, "log" 명령을 이용합니다. $ git log commit 7a0ad29e32bf05c56fa5039249d7a40d7f0a6d63 (HEAD -> master, origin/master, origin/HEAD) Author: Wonhee Han Date: Sat Mar 2 17:40:21 2021 +0900 ADD: about NaN commit 66ca530eff53437da4cda20a8c0f764cfe5c8b3f Author: Wonhee Han Date: Mon Nov 27 22:50:43 2020 +0900 수정: 서버에서 API 호출하는 방식으로 복구 commit b4c3d555521692..

728x90