본문 바로가기

Python

(18)
간단한 gRPC 파이썬 앱 만들고, Kreya로 테스트 해보기 gRPC나 Kreya나 각각의 공홈에 매우 잘 설명되어 있지만... 본인의 까먹 방지용으로 남겨둔다... gRPC 사용하는 서버 작성하기 gRPC 라이브러리 설치 다음처럼 grpcio 를 설치해준다. $ poetry add "grpcio" Grpc 관련 유틸리티 도구를 제공하는 grpcio-tools 도 설치한다. 개발하는 과정에서만 사용하기 때문에 개발 라이브러리로 설치한다 $ poetry add "grpcio-tools" -D 참고로 여기서 사용한 파이썬 버전 및 라이브러리 버전은 다음과 같다. $ python -V Python 3.9.7 $ pip list | grep grpcio grpcio 1.42.0 grpcio-tools 1.42.0 Proto 작성 이제 다음처럼 프로젝트 내에 protos ..
Commitizen으로 커밋, 버전 관리하기 들어가며 개발을 하며 Git을 잘 활용하려고 하다보면 이래저래 신경쓸게 많다. 그 중에서도 특히 커밋 메시지 규칙과 버저닝 규칙은 초반부터 잘 잡아놓으면 좋은 부분인데, 사실 규칙을 세우고 잘 지켜나가기가 쉽지 않다. 어떤 규칙을 세우고 팀원들에게 지켜달라고 해도, 실수는 늘 있기 마련이고, 중간에 이를 잡아주는 사람이 없으면 규칙은 언제든 무너지게 된다. 이번 글에서 소개할 commitizen은 이런 규칙을 잘 잡아주고 지켜나가도록 도와주는 python 라이브러리다. GitHub에서 오픈소스를 본 적이 있다면 CHANGELOG.md 나 섬세하게 버저닝이 된 태그들도 같이 보았을 것이다. 이런 것들을 모두 commitizen 으로 구현할 수 있다. commitizen을 사용하게 되면 더 이상 git co..
MacOS Big Sur에서 poetry로 패키지 설치안될 때 배경 BigSur가 나온지 그래도 이제 어느정도 된 듯 싶어 버전 올렸다. UI도 좀 더 둥글둥글 해지고 이뻐져 맘에 들고 있던 차... poetry로 파이썬 패키지를 설치하다가 문제를 발견한다. [다음 버전을 사용 중이다.] - MacOS Big Sur 11.2.3 - Poetry 1.1.4 문제 cryptography 라는 패키지를 poetry 로 설치하면 문제가 등장한다. 이 에러의 끝에 가보면 결국 다음과 같은 에러를 보게된다. error: can't find Rust compiler 찾아보니 공식 문서에 설명되어 있기로 이 패키지를 설치하는데는 Rust compiler가 필요하다고 한다. 그래 뭐 그럴 수 있지... 근데 뭐 그럼 내가 Rust를 설치해야 하는건가? [열 받는거] 열 받는건 Bi..
Poetry 에서 바로 실행 명령 가능한 패키지 만들기 배경 어떤 파이썬 패키지들을 설치한 뒤 터미널에서 특정 명령어로 바로 실행가능한 경우가 있다. 예를 들면 다음과 같다. # 다음 처럼 패키지를 설치한 뒤 $ poetry add pytest # pip install pytest 로 해도 상관없다. # 다음 처럼 바로 실행 가능하다. $ pytest 이렇게 설치 후 터미널에서 특정 명령어로 바로 실행가능한 poetry 패키지를 만들려면 어떻게 해야할까? 해결 방법 poetry 프로젝트 내에 있는 pyproject.toml 의 [tool.poetry.scripts] 를 활용하면 된다. 간단한 예제로 직접 확인해보자. 이전 포스트 "Poetry 에서 로컬 패키지 add 하기" 의 예제를 그대로 이어서 사용해본다. 프로젝트 구조는 다음과 같다...
Poetry 에서 로컬 패키지 add 하기 배경 poetry 를 쓰면 일반적으로 add 명령어로 패키지를 가상 환경에 추가한다. 예를 들어 pandas 를 추가하고 싶으면 다음처럼 하면 된다. $ poetry add pandas 대부분의 경우 이렇게 pypi 에 등록된 패키지를 설치하곤 한다. 그런데 만약 pypi에 등록되지 않은 로컬 패키지를 add 하고 싶은 경우라면 어떨까? 예를 들어 프로젝트 패키지 구조가 다음처럼 되어 있다고 하자. my-project ├── dependencies │ └── my-sub-package │ ├── README.rst │ ├── my_sub_package │ │ ├── __init__.py │ │ └── my_func.py │ └── pyproject.toml └── pyproject.toml my-proj..
나의 파이썬 환경 구축기 2 - pyenv + poetry 저번 글에 지금까지 써본 것들에 대한 생각을 주저리 주저리 적었고... 이제 내가 현재 사용하는 파이썬 환경 구축 방법에 대해 본격적으로 이야기해보려 한다. 콘다를 쓰고있었다면..? 지우자 내가 제일 처음 한 일은 내 맥북에 깔린 아나콘다를 지우는 것이었다. 이 지긋한 콘다 이제는 보내주자. 공홈에 지우는 방법이 설명되어있다. 순서만 간략히 적으면 다음과 같다. conda install anaconda-clean 로 anaconda-clean 설치 설치 후 anaconda-clean --yes 실행 ~/bash-profile 혹은 ~/zshrc 에서 export PATH="/Users/{user_name}/anaconda3/bin:$PATH" 삭제 후 저장 rm -rf ~/anaconda3 실행 rm -..
나의 파이썬 환경 구축기 1 - 써본 것들에 대한 생각 언젠간 한 번쯤은 나의 파이썬 개발 환경에 대해 글을 쓰려했었다. anaconda, virtualenv, pyenv 등등 지금까지 이것저것 다 써본 뒤... 이제 때가 왔다. 이번 글에서 내 맥북에 내가 어떻게 파이썬 개발 환경을 만들었는지 차례대로 적어볼 것이다. 다음과 같은 분들에게 이 글이 흥미가 있지 않을까 싶다. 주로 파이썬으로 개발하는 개발자 (분석가 아니다.) 파이썬 버전에 민감하게 반응하시는 분 (특히 새로운 파이썬 버전을 적극적으로 사용하려고 허시는 분) 깔끔하고 트렌디하게 파이썬 개발 환경 구축하고 싶은 분 거두절미하고, 이 글의 결론은 다음과 같다. 파이썬 버전 관리는 pyenv로, 가상 환경, 패키지 설치 및 관리는 poetry로 하자. 아, 난 맥을 쓰므로 맥을 쓴다는 것을 전제로..
python 멀티 프로세싱은 parmap 으로 하자. [2020.07.24 에 남기는 글] 이 글은 레거시적인 성격이 있습니다. 파이썬에서 멀티프로세스, 쓰레드 이용하기 가장 좋은 법은 concurrent.futrues 에서의 ThreadPoolExecutor 와 ProcessPoolExecutor 를 사용하거나 asyncio 를 사용하는 것입니다. 따라서 이 글은 이제는 별로 추천드리고 싶지 않습니다. 파이썬3에서 일반적으로 멀티프로세스 사용하는 방법 최근에 파이썬으로 프로젝트를 하다가 단일 프로세스로 루프문 돌리니까 너어어무 느려서, 속도를 좀 올려보고자, 멀티프로세싱을 사용해보게 되었다. 파이썬3 에서 일반적으로 사용하는 멀티 프로세싱 방법은 다음과 같이 크게 2가지 방법이 있다. multiprocessing.Process(...) multiproce..