의존성 패키지 관리 방법

hwstar·2024년 9월 6일

라이브러리 설치시 해당 라이브러리의 의존성 패키지가 함께 설치된다.
만약 어떤 의존성 패키지가 함께 설치되는지 확인하는 방법에 대해 알아보자

의존성 패키지 확인 방법

  1. pip show 명령어

라이브러리의 여러 정보중 requires 항목에서 볼 수 있다.

pip show "{library_name}"

ex)
❯ pip show pre-commit
Name: pre-commit
Version: 3.8.0
Summary: A framework for managing and maintaining multi-language pre-commit hooks.
Home-page: https://github.com/pre-commit/pre-commit
Author: Anthony Sottile
Author-email: asottile@umich.edu
License: MIT
Location: "location"
**Requires: cfgv, identify, nodeenv, pyyaml, virtualenv**
Required-by: 
  1. 시각적으로 파이썬 의존성 트리를 보는 방법
pip install pipdeptree
pipdeptree --package "{package_name}"
  1. 공식 github에서 파일로 확인하는 방법

requirements.txt 이나 setup.py 파일을 확인할 수도 있다.

pip show에서 보았던 내용이 있고 아래에 install_requires에 의존성 목록을 볼 수 있다.


이렇게 확인하고 라이브러리를 설치했다가 만약 해당 패키지만 삭제하면 같이 설치되었던 의존성들은 어떻게 될까?

pip uninstall ‘package_name’ 으로 패키지를 삭제하는데 해당 패키지만 삭제되고 의존성인 패키지는 그대로 남아 있는다.

왜냐하면 삭제된 패키지이외에 다른 패키지의 의존성일 수도 있기 때문에 같이 삭제했다가는 문제가 생길 수 있다.

그러면 처음에 설치했던 패키지가 더이상 필요없으면 해당 의존성을 찾아보고 일일이 다 삭제를 해야하나??

매우 비효율적이라고 생각한다.



역시나 이러한 문제를 해결해주는 친절한 라이브러리가 존재했다.

pip-autoremove를 사용하면 특정 패키지를 삭제할 때 더 이상 다른 패키지에서 사용되지 않는 의존성 패키지를 자동으로 삭제해준다.

# 설치
pip install pip-autoremove  

# 삭제 
pip-autoremove "{package_name}"

그런데 여러 패키지를 설치해서 실험하고 삭제하거나 프로젝트를 오래 진행하면필요하지 않는 패키지와 필요한 패키지가 requirements.txt에 섞여서 포함되어 있는 경우가 있을 수 있다.

이때 pip-check-reqs를 사용하면 requirements.txt에 포함되어 있지만 사용되지 않는 라이브러리를 쉽게 찾을 수 있다.

# 설치
pip install pip-check-reqs

# 사용되지 않는 패키지 찾기 
pip-missing-reqs "location"

실제 배포를 준비할때 프로젝트 내에서 실제로 사용되는 패키지들만 명시가 되어야 한다.

실제로 사용되는 라이브러리만 포함된 requirements.txt를 생성할 수도 있다.

pipreqs 라는 라이브러리를 사용하면 된다.

# 설치 
pip install pipreqs

# 프로젝트 내에서 사용되는 새로운 requirements.txt 생성
pipreqs "/path/to/your/project"

0개의 댓글