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 |