- 파이썬의 모듈들은 명령행 도구로 사용될 수 있음
- 예를 들어 webbrowser 모듈을 명령행에서 실행하면 기본 웹 브라우저를 통해 주어진 URL을 열 수 있음
- 파이썬 표준 라이브러리에는 이러한 모듈-스크립트 하이브리드가 많이 포함되어 있음
- -m 옵션을 사용하여 파이썬을 실행하면 주어진 파이썬 모듈을 스크립트처럼 실행함
- 일부 모듈은 import 시점에 어떤 동작을 하는데, 예를 들어 antigravity 모듈은 XKCD 만화를 웹 브라우저로 열어줌. 이를 명령행에서 실행하면 모듈을 import한 것과 동일한 효과가 있음
- 이를 "import side effect"라고 부르며, 대부분의 모듈은 이를 피함. antigravity와 같은 이스터에그 모듈이 예외임
- Import side effect를 피하는 모듈들은 모듈로 import될 때와 스크립트로 실행될 때 다른 동작을 하기 위해 name 변수를 사용함
유용한 일반 목적 명령행 도구들
-
python -m http.server
: 간단한 웹 서버 시작
-
python -m webbrowser
: 웹 브라우저 실행
-
python -m json.tool
: JSON 데이터를 예쁘게 포맷팅
-
python -m calendar
: 명령행 캘린더 보여주기
윈도우에서 특히 유용한 도구들
-
python3.12 -m uuid
: uuidgen CLI 유틸리티와 유사
-
python3.12 -m sqlite3
: sqlite3 CLI 유틸리티와 유사
-
python -m zipfile
: zip & unzip CLI 유틸리티와 유사
-
python -m gzip
: gzip & gunzip CLI 유틸리티와 유사
-
python -m tarfile
: tar CLI 유틸리티와 유사
파이썬 코드 작업시 유용한 도구들
-
python -m pip
: 서드파티 파이썬 패키지 설치
-
python -m venv
: 가상 환경 생성
-
python -m pdb
: 파이썬 디버거 실행
-
python -m unittest
: unittest 테스트 실행
-
python -m pydoc
: 문서 보기
-
python -m doctest
: 주어진 파일의 doctest 실행
-
python -m ensurepip
: pip 설치
-
python -m idlelib
: IDLE 그래픽 REPL 실행
-
python -m zipapp
: 파이썬 모듈을 실행 가능한 ZIP으로 변환
-
python -m compileall
: 파이썬 파일들을 바이트코드로 미리 컴파일
파이썬 코드 분석 도구들
-
python -m tokenize
: 파이썬 모듈을 토큰으로 분해
-
python -m ast
: 코드의 추상 문법 트리 보여주기
-
python -m dis
: 파이썬 코드를 바이트코드로 디스어셈블
-
python -m inspect
: 파이썬 객체의 소스코드 검사
-
python -m pyclbr
: 모듈의 객체들에 대한 개요 보기
파이썬 이스터에그로 작동하는 재미있는 스크립트들
-
python -m __hello__
: "Hello world!"를 출력함
-
python -m this
: 파이썬의 선(The Zen of Python, PEP 20)을 출력함
-
python -m antigravity
: 웹 브라우저에서 파이썬 관련 XKCD 만화 353번을 열어줌
-
python -m turtledemo
: turtle
모듈로 그릴 수 있는 다양한 그림들의 데모를 보여줌
기타 파이썬 관련 도구들
-
python -m asyncio
: asyncio 지원 파이썬 REPL 실행
-
python -m cProfile
: 파이썬 프로그램 프로파일링
-
python -m pstats
: cProfile로 생성된 프로파일 통계 보기
-
python -m pickle
: pickle 파일 내용 보기 (high-level)
-
python -m pickletools
: pickle 파일 분해 (low-level)
덜 유용한 도구들
-
python -m timeit
: 파이썬 표현식 수행 시간 측정
-
python -m site
: 파이썬의 "site" 정보 보기
-
python -m sysconfig
: 파이썬 구성 세부사항 보기
-
python -m platform
: 현재 플랫폼 정보 보기
-
python -m mimetypes
: 파일 mimetype/확장자 정보 보기
-
python -m quopri
: raw email 데이터 인코딩/디코딩
-
python -m filecmp
: 2개의 디렉토리 내용 비교
-
python -m tabnanny
: 파이썬 파일의 탭과 공백 혼용 체크