Data Engineering/Bigdata Fundamentals

PDM을 이용한 파이썬 패키지, 의존성 관리

qqprty 2024. 7. 17. 14:09

PDM은 파이썬 의존성 관리 도구이다. 프로젝트 설정, 종속 항목 관리, 배포 아티팩트 빌드를 위한 단일 인터페이스를 제공한다. 또한 패키지를 프로젝트에 로컬로 저장하기 위해 PEP 582 표준을 사용한다. 이는 각 프로젝트마다 독립적인 패키지 설치 및 관리를 가능케하여 프로젝트별 가상 환경을 만들 필요가 없다.

1. 설치

# PDM 설치
$ curl -sSL https://pdm.fming.dev/install-pdm.py | python3 -

# 환경변수 등록
$ export PATH=/home/oddsummer/.local/bin:$PATH

 

pyenv 포스팅에서와 마찬가지로 zsh 쉘을 사용하기 때문에, 부팅시 활성화 하기 위해 .zshrc 맨 아래에 추가해뒀다.

 

 

2. PDM 실행

# 새로운 프로젝트 초기 구조 생성
$ mkdir <디렉토리>
$ cd <디렉토리>

# 표준 프로젝트 구조 만들기
$ pdm init

# 의존성 설치 및 삭제
$ pdm add <package name>
$ pdm uninstall <package name>
#패키지 publish
$ pdm publish
Username: __token__
Password: <pypi 발급받은 key>

 

3. pyproject.toml

 

pyproject.toml은 Python 프로젝트의 빌드 시스템과 관련된 설정을 포함하는 파일이다. 

  • [build-system]: 빌드 백엔드와 빌드에 필요한 의존성을 선언.
  • [project]: 대부분의 빌드 백엔드에서 프로젝트의 기본 메타데이터(의존성, 이름 등)를 명시하는 데 사용.
  • [tool]: 도구 특화 설정을 위한 서브테이블.

1. 실행 파일 생성

[project.scripts]을 사용하면 실행 파일 shortcut 을 지정할 수 있다.

 

#src/oddsummer_lotto/lotto.py
def lotto():
    l = random.sample(range(1, 46), 6)
    print(l)                                                                                                  
    
#src/oddsummer_cmd/cmd.py
from oddsummer_lotto.lotto import lotto

def call():
    lotto()
[project.scripts]

$ <실행할 이름> = "<패키지명>.<코드파일>:<함수>"
oddsummer-cmd = "oddsummer_cmd.cmd:call"

 

2. 배포 설정 

[tool.pdm]
distribution = true

 

pypi에 배포하기 위해서는 [tool.pdm] 에서 distribution = true 로 설정해주어야 한다.

 

3. pip install .

Python 프로젝트를 현재 환경에 설치하는 데 사용.

프로젝트를 현재 환경에 복사하여 설치하기 때문에, 프로젝트 변경 사항 발생 시 재설치 필요. git과 pip install .  모두 pyproject.toml 이 있는 상위 파일에서 실행해야 함.

 

'Data Engineering > Bigdata Fundamentals' 카테고리의 다른 글

ngrinder, nginix  (0) 2024.08.12
[Git] Git 특강  (2) 2024.07.22
pyenv를 이용한 여러 개의 Python 버전 관리  (0) 2024.07.17
[Git] Markdown  (0) 2024.07.11
[Git] Git 설치, 초기 설정, 기본 사용법  (1) 2024.07.10