IT/python5 [python] 패키지관리 python 패키지 관리 툴들의 발전 disutils 와 PyPI(인덱스 서버)의 등장 과거에는 개발자들을 위한 패키지 저장소는 커녕 패키지를 검색하기도 어려서 커뮤니티를 사용해서 공유했다. 문제는 설치하는 방법이 정해지지 않다보니 작성자가 사용법을 명시해서 공유했다. 1998년, 이런 불편함을 해결하고자, 코드를 패키징하고 빌드할 수 있는 disutils 가 등장. 패키지의 메타데이터를 담은 파이썬 스크립트를 사용하는 setup.py 방식 제공 패키지 배포, 설치하는 표준화된 방법 제공from disutils.core import setup setup(name='test', version='1.0', py_modules=['test'],) 이렇게 하여 개발자는.. 2023. 8. 31. [python - kubernetes] pytorchjob을 활용한 분산 데이터 병렬 처리 기초 서두 이 글은 pytorch DDP(DistributedDataParallel) 로 기본 병렬처리를 짜고, 이를 k8s 위에서 pytorchjob 으로 돌리는 예시로 변환하는 방식을 설명한다. 또 아주 기초적으로 수박 겉핥기로 설명한다. 필자도 아주 깊게는 이제 공부하는 중이다...;; pytorch 의 병렬처리에 대한 깊은 이해가 필요하다면 공식문서를 참조하시길 바란다. pytorch 코드를 pytorchjob으로 돌리기 위해서 필요한 작업은 간단하다 기존에 직접 정해주던 rank, world_size 등을 init_process_group 에서 삭제 model 을 몇번째 gpu 에 할당할지 정하는 코드를 삭제 위 두가지만 해주면 끝이다... pytorchjob 에서 master - worker 를 띄.. 2023. 2. 3. [python] asyncio 비동기 프로그래밍의 기초 서두 이글은 FastAPI를 사용하다가, 비동기를 좀더 깊이 알고자 작성하게 되었다. python3 에서는 비동기 프로그래밍을 지원하고 있다. 구체적으로는 python3.4 에서는 asyncio 모듈이 추가되었고, python 3.5 에서는 async, await 키워드가 추가 되어서 비동기 프로그래밍을 지원하고 있다. 이를 간단히 설명해보고자 한다. (더 자세한 설명은 아래에 참고 링크를 참고 바랍니다) 설명 순서는 1-1. iterator → 1-2. generator → 2-1. coroutine → 2-2. yield from → 3. future, tasks → 4. event loop → 5-1. asyncio → 5-2. async,await 이다 iterator와 generator 는 as.. 2023. 1. 30. [python] 의존성 주입 (Dependency Injection) 기초와 FastAPI 서두 여기서는 의존성주입(Dependency Injection) 의 기초에 대해 간단히 알아보고, Python Dependency Injector + FastAPI 를 통해 간단한 예제를 구현해보자. 기초 지식 Dependency Injection 은 객체지향의 5대 원칙 SOLID 중 DIP(Dependency Inversion Principle) 을 만족시키기 위해 사용하는 방식이다. DIP 는 간단히 말하면 추상 클래스가 구체 클래스에 의존하는게 아니라, 구체 클래스가 추상클래스에 의존하도록 하여 프로그램을 확장 가능하도록 개발하기 위한 방법론이다. 설명이 어려우니 예를 들어보자. 우리가 게임 캐릭터를 생성하는데, 캐릭터는 여러 무기를 가질 수 있다고 가정해보자. 이 때, 만약 Character 클.. 2023. 1. 27. 이전 1 2 다음