만들고자 하는 것
모든 의존성이 아니라 설치한 pip 목록만 requirements.txt 에 담기
requirements.txt 생성하기 글에서 pip freeze 를 사용하여 requirements.txt 를 생성하였다. 근데 pip freeze 의 문제는 모든 의존성을 담는다는 것이다.
설치 및 실행하기
pip install pip-chill
pip-chill > requirements.txt
pip freeze 를 사용한 requirements.txt 내용
anyio==3.6.2
click==8.1.3
exceptiongroup==1.1.1
Faker==18.9.0
fastapi==0.95.2
h11==0.14.0
httptools==0.5.0
idna==3.4
iniconfig==2.0.0
packaging==23.1
parameterized==0.9.0
pluggy==1.0.0
pydantic==1.10.7
pytest==7.3.1
python-dateutil==2.8.2
python-dotenv==1.0.0
PyYAML==6.0
six==1.16.0
sniffio==1.3.0
starlette==0.27.0
tomli==2.0.1
typing_extensions==4.5.0
uvicorn==0.22.0
uvloop==0.17.0
watchfiles==0.19.0
websockets==11.0.3
pip-chill 를 사용한 requirements.txt 내용
faker==18.9.0
fastapi==0.95.2
httptools==0.5.0
parameterized==0.9.0
pip-chill==1.0.3
pytest==7.3.1
python-dotenv==1.0.0
pyyaml==6.0
uvicorn==0.22.0
uvloop==0.17.0
watchfiles==0.19.0
websockets==11.0.3
확실히 간단해진 것을 볼 수 있다. 지금 설치한 의존성이 별로 없는데도 이 정도 차이이니 조금만 더 규모가 있어도 확연히 달라질 것이다.