본문 바로가기

프로그래밍 (이동 완료)/Python

파이썬 패키징 정리

  • distutils : 초기 파이썬 패키징, 빌드를 할 수 있는 패키지, 1998년
    • setup.py 라는 패키지 메타 데이터 담은 파이썬 스크립트를 사용하는 방식
    • ex :
      1. python setup.py sdist: 패키지 소스코드 압축
      2. python setup.py bdist: 패키지 바이너리 배포판 생성
      3. python setup.py install: 패키지 설치

 

  • PyPI (Python Packaging Index) : 필요한 파이썬 패키지를 쉽게 찾기 위한 패키지 저장소, 2003년

 

  • setuptools : 새로운 빌드 시스템과 패키지 설치 도구, 2004년
    • distutils 는 패키지 간 의존성 처리, PyPI 에서 직접 패키지 다운로드 기능이 없음
    • 문법을 확장하고, 패키지 의존성 및 파이썬 버전 지정, 어플리케이션 엔트리 포인트 설정 기능 추가
    • easy_install 이라는 도구를 함께 제공하여, 패키지 의존성을 포함하여 설치하는 기능을 지원
      (빌드 / 업로드는 setuptools, 다운로드 / 설치는 easy_install 이 수행)
    • egg 라는 바이너리 포맷으로 된 패키지 설치 방식을 지원 (pip 에서는 egg 사용 X)

 

  • pip (핍) : 개선된 패키지 설치 도구 (2008년)
    • easy_install 은 패키지 삭제, 목록 뷰 등 기능이 없어서 패키지 관리 도구로 불편
    • pip 은 패키지 관리 도구 기능을 강화하고, git repo. 에 파이썬 패키지를 바로 설치 할 수 있게 부가 기능 함께 제공
    • 파이썬 3.4 부터 디폴트 패키지 인스톨러가 됨
    • wheel : 원래 pip 은 패키지 설치 시에 파이썬 소스 코드를 직접 빌드하는 설치 방식만 제공 했었으나, C-extension 을 사용하는 패키지의 경우 빌드 할 때 필요한 컴파일러가 없으면 패키지를 설치 할 수 없는 문제가 있어, 2013년부터 미리 플랫폼에 맞추어 빌드된 바이너리 포맷 패키지를 설치하는 방식이 wheel 이며, zip 파일 형태의 바이너리 패키지 포맷임.
  • 모던 파이썬 패키징 도구
    • poetry : 2018년 시작, 파이썬 패키지 패키징(setuptools), 업로드(twine), 설치 (pip) 하는 모든 과정을 처리 할 수 있는 도구를 지향.
    • flit : 순수하게 파이썬을 사용한 패키지를 PyPI 에 업로드 하는 과정을 단순화 하는 것이 목표. C-extension 과 같은 부가 기능을 사용하지 않는 파이썬 패키지의 경우 업로드 과정의 복잡한 설정이 필요하지 않다는 점에서 착안해 패키지 업로드 과정을 단순화 하는 것을 지향하는 프로젝트

 

  • 파이썬 라이브러리 로컬 설치 방법

https://kingname.tistory.com/210

 

파이썬 라이브러리 로컬 설치 방법

파이썬 로컬 설치 방법 Python 환경에서 인터넷을 쓸 수 없는 경우 즉 오프라인상태의 경우 파이썬 라이브러리를 설치하는 방법에 대해서 알아보겠습니다. 파이썬 라이브러리 설치 준비 및 설치

kingname.tistory.com

 

파이썬 라이브러리 로컬 설치 방법은 아래 3가지

  1. .whl 파일을 pip 로 설치 (python -m pip install *.whl)
  2. egg 파일을 setuptools 로 설치 (구버전)
  3. python setup.py install 로 설치 

pip 로 관리되지 않고 깃허브 등으로 배포되거나, dev 버전으로 이용하고자하는 라이브러리는 수동으로 설치해야 되는데, 일반적으로 setup.py 파일을 제공한다. 패키지를 다운로드 한 후, 최상위 디렉토리로 이동하여 install 명령 실행하면 된다.

ex : sudo python setup.py install