이 글은 모든 파이썬 프로그래머를 위한 20가지 실용적인 파이썬 라이브러를 요약한 것입니다.
파이썬 20가지 실용 라이브러리
아파치 Libcloud (파이썬 2, 파이썬 3)
통합 API를 통해 여러 클라우드 서비스 업체에 접근할 수 있다(10여 개 업체). 컴퓨팅, 스토리지, 로드밸런싱, DNS를 위한 API를 제공하며 고성능 JIT 컴파일러 파이파이(PyPy)를 지원한다.
애로우(Arrow)
날짜와 시간 기능을 제공한다. 시간대, 날짜 변환, 날짜 형식을 쉽게 다룰 수 있다. 애로우는 파이썬 datetime 모듈을 대체한다. now() 및 .utcnow()와 같은 일반 함수 동작을 개선했다. 시간대 이동이나 변환과 같은 흔히 필요한 메소드를 제공한다. “인간 친화적인” 날짜/시간 정보를 제공하는데, “한 시간 전에“ 일어난 일의 경우 등을 표현할 수 있다. 쉽게 날짜/시간 정보를 현지 정보로 다룰 수 있다.
비홀드(Behold)
파이썬에서 print 형태 디버깅을 잘 지원한다. 파이썬 디버깅에서 인라인 print 문을 삽입하는 경우가 많다. 그런데 크고 광범위한 다중 모듈 프로젝트에서는 유용하지 않은 방법이다. 비홀드는 print 출력에 일관된 모양을 주고 결과 태그로 검색 및 필터 정렬이 가능하며, 한 모듈에서 만든 함수를 다른 모듈에서 디버깅할 수 있다.
보틀(Bottle)
가볍고 빠른 웹 앱을 만들 수 있다. 간단히 RESTful API를 사용하거나 웹 프레임워크의 골격을 사용해서 앱을 구축하고 싶으면 보틀을 사용하자. 라우팅, 템플릿, 요청 및 응답 데이터 액세스, CGI, 여러 서버 유형 지원, 웹소켓 같은 고급 기능까지 포함한다. 고급 기능 확장도 가능하다.
EbookLib
epub 파일 읽기 및 쓰기를 지원한다. 관리 툴과 API를 이용하여 EPUB 2, EPUB 3 파일을 지원하며 추후 킨들도 지원 예정이다. 플러그인 시스템을 사용해 써드 파티에서 라이브러리의 동작을 확장할 수 있다.
[참고] Mkepub
EbookLib의 단순 기능만 필요하면 Mkepub을 활용하자. 기본적인 전자책 구성 기능을 작은 라이브 러리 하나로 결합 제공한다. 단, Jinja2가 필요하며, Jinja2는 MarkupSafe 라이브러리가 필요하다.
구이(Gooey)
콘솔 기반 파이썬 프로그램에 GUI 환경을 제공한다. 구이는 argparse 라이브러리 도움을 받아 WxPython 라이브러리를 거쳐 GUI 형식을 사용할 수 있게 한다. 이미 argparse를 사용하고 있다면 코딩에서 include 하나와 decorator 하나가 필요하다.
인보크(Invoke)
파이썬 원격 실행(관리 작업)을 수행한다. 인보크는 셸 명령을 실행하고 명령줄 작업을 API를 제공한다. 이런 작업을 코드에 내장하거나 연결할 수 있다.
누이트카(Nuitka)
파이선을 C 컴파일을 하고 실행 가능한 파일을 만든다. 사이썬(Cython)처럼, 누이트카는 파이썬을 C로 컴파일한다. 누이트카는 모든 파이썬 프로그램을 C로 컴파일하고 단일 실행 파일을 생성하며 최적화를 제공하기도 한다. 개발 초기 단계라 최적화 기능은 아직 덜 완성되었지만, 파이썬 스크립트를 빠른 명령줄 앱으로 변환할 때 편리하다.
눔바(Numba)
연산 집약 함수의 속도를 높인다. 파이썬에는 수학 연산 속도를 높이는 패키지 체계가 존재한다. 그래서 넘파이(NumPy)는 고속 C 라이브러리를 파이썬 인터페이스로 도입하여 성능 가속 형식 지정을 통해 파이썬을 C로 컴파일하지만, 눔바는 데코레이터 하나로 파이썬 함수를 선별적으로 가속화한다. 속도를 더 높이려면 파이썬 관용구로 워크로드를 병렬화하거나 SIMD 또는 GPU 명령어를 사용하자. 눔바의 성능이 넘파이보다 몇 배 좋다.
피위(Peewee)
ORM(Object-Relational Mapper) 기능이며 SQLite, MySQL, PostgressSQL을 지원하며 확장 기능이 풍부하다.필로우(Pillow)
간편한 이미지 처리를 제공한다. 개발자는 PIL(Python Imaging Library, 파이썬 이미지 라이브러리)에 익숙하지만, 최소 변경으로 더 쉬운 사용과 PIL과의 코드 호환성를 갖고 싶으면 필로우를 사용하자. 네이티브 윈도우 이미징 기능과 파이썬 Tcl/Tk 기반 Tkinter GUI 패키지 조작도 가능하다. 깃허브 또는 PyPI 리포지토리에서 제공한다.
파이파일시스템(PyFilesystem)
모든 파일 시스템에 대한 인터페이스를 제공한다. 파이썬 file 객체가 파일을 추상화하듯, 파이파일시스템의 FS 객체는 파일 시스템을 추상화하여 다룬다. 디스크 파일 시스템, FTP 디렉토리, 메모리 파일 시스템, OS 정의 위치 파일 시스템(사용자 디렉토리 등) 등을 다룰 수 있다. 콘솔에 적합한 파일 시스템의 트리 뷰를 인쇄하기 위한 툴 같은 유틸리티도 제공한다.파이게임(Pygame)
비디오 게임급 프론트엔드를 만든다. 파이게임은 GUI 기반 동작을 간편히 처리할 수 있게 해준다. 그림 캔버스와 스프라이트 그래픽, 멀티채널 사운드 작업, 창 및 클릭 이벤트 처리, 충돌 감지 등 작업을 다룰 수 있다.
파이글릿(Pyglet)
순수 파이썬을 사용한 크로스 플랫폼 멀티미디어 및 윈도우 그래픽를 다룬다. 윈도우 기능, OpenGL 그래픽, 오디오/비디오 재생, 키보드/마우스 처리, 이미지 파일 작업 등을 GUI 애플리케이션에서 다룰 수 있게 한다.단, 버튼, 툴바, 메뉴와 같은 UI 위젯은 없다. 윈도우, OS X, 리눅스 네이티브 플랫폼 기능을 통해 구현되므로 바이너리 종속성이 없다(소스 코드 호환성이 있다).
파이인스톨러(PyInstaller)
파이썬 스크립트를 독립 실행 파일로 구성해준다. 파이인스톨러는 파이썬 스크립트(넘파이와 같은 바이너리부터 서드파티 모듈 포함)를 단일 폴더나 파일 애플리케이션으로 만들어주므로 그것을 배포하면 된다. 단, 폴더나 파일에 필요 이상의 정보를 넣기도 하므로 결과물이 커질 수 있다.
파이심플GUI(PySimpleGUI)
간편하게 GUI를 만든다. 파이썬에는 GUI를 위한 Tkinter가 포함되지만 사용하기가 쉽지 않다. 파이심플GUI는 간결한 API로 Tkinter를 쓸 수 있게 해준다(래핑). 대화상자나 팝업 메뉴 같은 것을 코드 한 줄로 만들 수 있다. 단, 세련된 모양을 원한다면 다른 툴을 선택해라.파이썬-docx
마이크로소프트 워드 파일(.docx) 다룰 수 있다. docx 형식은 매우 복잡한데, 파이썬-docx는 고수준 API를 제공하여 복잡성을 줄여준다. 파이썬-docx로 텍스트, 이미지, 표, 스타일, 섹션, 머리글/바닥글 추가나 변경이 가능하다. 새 문서, 기존 문서이 가능하다.스크래피(Scrapy)
화면 스크랩과 웹 크롤링이 가능하다. 스크랩 항목을 정의하는 클래스를 만들고 페이지에서 데이터를 추출하는 규칙을 쓰면 된다. 결과는 JSON, XML, CSV 등 다양한 형식이 가능하다. 확장을 통해 웹사이트 로그인, 세션 쿠키 처리 등 작업도 처리할 수 있다. 이미지도 스크랩해서 콘텐츠와 연결 가능하다.
Sh
하위 프로세스에서 외부 프로그램을 호출하고 결과를 반환한다. 해당 프로그램을 네이티브 파이썬 함수처럼 취급하며 같은 구문을 사용한다. POSIX 시스템에서 유용하다. 이 시스템에서 사용 가능한 명령 프로그램을 파이썬 형식으로 사용할 수 있다.스플린터(Splinter)
브라우저 작업 자동화를 통해 웹 애플리케이션을 검사한다. 스플린터는 브라우저를 호출하고 URL을 전달하고 양식을 채우고 버튼을 클릭하는 등의 작업을 자동화할 수 있다. 크롬,및 파이어폭스는 작업 드라이버를 제공한다. Selenium Remote를 이용하연 다른 장소 브라우저도 제어할 수 있다.
<이상>
'Python 활용' 카테고리의 다른 글
DeprecationWarning: There is no current event loop 에러 (0) | 2022.06.08 |
---|---|
파이썬, 데이터 분석 가이드 (Python for Data Analsis, 3E) (0) | 2022.06.01 |
Python을 사용하여 SAP에서 데이터를 추출 (0) | 2022.05.30 |
Python을 사용하여 SAP에 로그인 (0) | 2022.05.30 |
Python, SAP ERP 접속하기 (0) | 2022.05.30 |