라즈베리파이에서 pandas를 설치하고 실행하니 다음과 같은 에러가 발생했다.%Run main.pyTraceback (most recent call last): File "main.py", line 7, in from util import get_candles_dataframe, get_ma File "util.py", line 2, in import pandas as pd File "/lib/python3.9/site-packages/pandas/__init__.py", line 19, in raise ImportError(ImportError: Unable to import required dependencies:numpy: Error importing numpy: you ..
파이썬으로 슬랙 메시지를 보내는 방법을 알아보자. 슬랙에 메시지를 보내는 방법은 2가지가 있다. WebClinet(Slack Web API) 사용Incoming Webhooks 사용WebClient는 모든 슬랙 API 기능을 사용하는 것이 특징이고, Incoming Webhooks는 메시지만 전송하는 기능만 사용할 수 있다. # 슬랙 설정하기나는 먼저 간단하게 메시지를 전송하는 Incoming Webhooks를 사용하려고 한다. 자세한 설정법은 다음 사이트를 참고하였다. [python] 슬랙 메시지 보내기파이썬으로 슬랙(Slack) 메시지 보내기 저는 주로 자동 프로그램을 작동시키거나 모니터링할 때, 설정해둔 특정 상황이나 오류가 발생하면 슬랙 메신저로 알림을 받아봅니다. 파이썬으로 슬랙 메dev-n..
파이썬 3.9를 기준으로 파이썬 타입 어노테이션을 사용하는 방법에 대해서 알아보자. 이 문서는 공식문서를 바탕으로 만들었다. NewType Callable Generics Any NoReturn tuple Union Optional type Literal ClassVar Final AnyStr Protocol runtime_checkable NamedTuple TypedDict # 파이썬 타입 어노테이션을 적용하기 전에 확인해야 할 점 타입 어노테이션은 파이썬 3.5부터 추가가 되었다. 그리고 현제까지도 계속 관련 기능이 추가되고 있는 상황이다. 이 말은 곧 호환성을 고려해야 한다는 것이다. 특히 파이썬 3.9에서 많은 부분이 변경되었다. 그러므로 자신이 사용하는 파이썬 환경을 고려해서 어노테이션을 작성..
파이썬의 타입 어노테이션(type annotation)에 대해서 알아보자. 타입 어노테이션에 대해서 알기 위해선 우선 파이썬의 특징을 잠시 알아하고 왜 타입 어노테이션이 필요한지 설명하겠다. # 파이썬은 동적 타입 언어다 a = 1 a = '1' 파이썬은 식별자에 값을 넣으면 아주 쉽게 변수를 만들 수 있다. 그리고 어떤 값이든 넣을 수 있다. 위에서 a에 int 타입인 1을 넣었고, 바로 str 타입인 '1'을 넣었다. 이렇게 식별자에 타입을 정하지 않고 실행 중에 타입을 확인하는 프로그래밍 언어를 동적 타입 언어라고 한다. # 파이썬은 덕 타이핑을 쉽게 할 수 있다 이런 동적 타입 언어의 기능으로 파이썬은 정말 쉽게 코드를 작성할 수 있게 된다. 예를 들어 다음은 컬렉션의 요소를 출력하는 함수다. d..
파이썬 3.5부터 타입 힌트를 지원하기 위해서 어노테이션(annotation)이 추가되었다. 어노테이션을 이용해서 코드를 작성하던 중, 클래스의 메서드의 리턴 타입을 해당 클래스로 어노테이션으로 작성하니 에러가 났다. # 예제 코드 다음 코드에서 Dollar의 times 메서드는 Dollar를 리턴한다. class Dollar(Money): def __init__(self, amount: int): self._amount: int = amount def times(self, multiplier: int) -> Dollar: return Dollar(self._amount * multiplier) 하지만 vscode에서는 Dollar가 정의되어 있지 않았다면서 에러가 발생한다. # 해결 방법 열심히 구글링..
vscode에서는 파이썬 unittest를 기본 설정으로 잘 사용하고 있었다. 그리고 시간이 지날수록 테스트 파일이 많아져서 테스트를 패키지 별로 디렉터리를 만들어서 분리를 해 주었다. 하지만 테스트를 디렉터리로 분리하니 vscode의 테스트에서 테스트 파일들을 찾지 못했다.이를 해결하기 위해서는 setting.json에서 unittest를 재설정이 필요하다. # 1. setting.json 설정하기 vscode에서 탐색기로 파이썬 프로젝트 디렉터리를 열면 관련 설정 파일이 .vscode 디렉터리에 저장된다. unittest 설정파일도 이 디렉터리의 settings.json에 저장된다. { "python.testing.unittestArgs": [ "discover", "-s", "tests", "-p"..
파이썬의 unittest 단위 테스트 프레임워크에서 자주 사용하는 assert 메서드에 대해서 알아보자. # 값 검사 메서드 TestCase 클래스는 값을 검사하고 실패를 보고하기 위해 assert 메서드를 제공한다. 모든 assert 메서드는 msg 인자를 추가로 받기 때문에 실패 시 출력 메시지를 전달할 수 있다. 메서드 검사하는 내용 추가된 버전 assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) x is True assertFalse(x) x is False assertIs(a, b) a is b 3.1 assertIsNot(a, b) a is not b 3.1 assertIsNone(x) x is None 3.1 assertIs..
파이썬 unittest 단위 테스트 프레임워크는 테스트 메서드 내부의 반복문에서 부분 테스트(subtest)를 사용할 수 있도록 지원한다. # 테스트 메서드의 반복문 예제 예를 들어 다음 테스트는 for문에 i가 짝수인지를 확인하는 테스트 코드가 있다. import unittest class NumbersTest(unittest.TestCase): def test_even(self): for i in range(0, 6): self.assertEqual(i % 2, 0) test_even (__main__.NumbersTest) ... FAIL ====================================================================== FAIL: test_even (__..